Update file/es1.cpp

This commit is contained in:
Vichingo455 2025-03-26 10:07:21 +00:00
parent cf193d86ea
commit f3ea999cbc
1 changed files with 103 additions and 103 deletions

View File

@ -1,103 +1,103 @@
/* /*
AUTORE: Manuel Vichi 3^AIN AUTORE: Manuel Vichi 3^AIN
Esercizio 1 stringhe Esercizio 1 file
*/ */
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <cstring> #include <cstring>
void leggiFileCaratterePerCarattere(const char *nomeFile) { void leggiFileCaratterePerCarattere(const char *nomeFile) {
// Apre il file in lettura // Apre il file in lettura
FILE* file = fopen(nomeFile,"r"); FILE* file = fopen(nomeFile,"r");
// Verifica se il file è stato aperto correttamente // Verifica se il file è stato aperto correttamente
if (file == NULL) { if (file == NULL) {
perror("l'errore e' stato: "); perror("l'errore e' stato: ");
} }
// Legge il file carattere per carattere, stamparlo a schermo // Legge il file carattere per carattere, stamparlo a schermo
int ch = 0; int ch = 0;
int chn = 0; int chn = 0;
while ((ch = fgetc(file))!=EOF) { while ((ch = fgetc(file))!=EOF) {
putchar(ch); putchar(ch);
chn++; chn++;
} }
// Chiude il file // Chiude il file
fclose(file); fclose(file);
} }
int cambiaNomeFile(const char *vecchioNome, const char *nuovoNome) { int cambiaNomeFile(const char *vecchioNome, const char *nuovoNome) {
// Rinomina il file // Rinomina il file
if (rename(vecchioNome,nuovoNome) != 0) if (rename(vecchioNome,nuovoNome) != 0)
return 1; return 1;
printf("Il nome del file è stato cambiato da '%s' a '%s'\n", vecchioNome, nuovoNome); printf("Il nome del file è stato cambiato da '%s' a '%s'\n", vecchioNome, nuovoNome);
return 0; return 0;
} }
int cancellaFile(const char *nomeFile) { int cancellaFile(const char *nomeFile) {
// Elimina il file // Elimina il file
if (remove(nomeFile) != 0) if (remove(nomeFile) != 0)
return 1; return 1;
printf("Il file '%s' è stato eliminato con successo.\n", nomeFile); printf("Il file '%s' è stato eliminato con successo.\n", nomeFile);
return 0; // Restituisce 0 se l'eliminazione è avvenuta con successo return 0; // Restituisce 0 se l'eliminazione è avvenuta con successo
} }
void copiaFileCaratterePerCarattere(const char* nomeFileOrigine, const char* nomeFileDestinazione) { void copiaFileCaratterePerCarattere(const char* nomeFileOrigine, const char* nomeFileDestinazione) {
FILE* fileOrigine = fopen(nomeFileOrigine, "r"); FILE* fileOrigine = fopen(nomeFileOrigine, "r");
FILE* fileDestinazione = fopen(nomeFileDestinazione, "w"); FILE* fileDestinazione = fopen(nomeFileDestinazione, "w");
if (fileOrigine != NULL) { if (fileOrigine != NULL) {
int ch = 0; int ch = 0;
while ((ch = fgetc(fileOrigine)) != EOF) while ((ch = fgetc(fileOrigine)) != EOF)
fputc((char)ch,fileDestinazione); fputc((char)ch,fileDestinazione);
} }
// Chiudi i file // Chiudi i file
fclose(fileOrigine); fclose(fileOrigine);
fclose(fileDestinazione); fclose(fileDestinazione);
} }
void pausa(){ void pausa(){
system("pause"); system("pause");
system("dir"); system("dir");
system("pause"); system("pause");
} }
void copiaPrimi100Caratteri(const char* nomeFileSorgente, const char* nomeFileDestinazione) { void copiaPrimi100Caratteri(const char* nomeFileSorgente, const char* nomeFileDestinazione) {
FILE* fileSorgente = fopen(nomeFileSorgente, "r"); FILE* fileSorgente = fopen(nomeFileSorgente, "r");
FILE* fileDestinazione = fopen(nomeFileDestinazione, "w"); FILE* fileDestinazione = fopen(nomeFileDestinazione, "w");
if (fileSorgente != NULL) { if (fileSorgente != NULL) {
int ch = 0; int ch = 0;
int chn = 0; int chn = 0;
while ((ch = fgetc(fileSorgente)) != EOF && chn != 100) { while ((ch = fgetc(fileSorgente)) != EOF && chn != 100) {
fputc((char)ch,fileDestinazione); fputc((char)ch,fileDestinazione);
chn++; chn++;
} }
} }
// Chiudi i file // Chiudi i file
fclose(fileSorgente); fclose(fileSorgente);
fclose(fileDestinazione); fclose(fileDestinazione);
} }
void aggiungiStringa(const char* nomeFile, const char* nome) { void aggiungiStringa(const char* nomeFile, const char* nome) {
// Apre il file in modalità append (aggiunta in coda) // Apre il file in modalità append (aggiunta in coda)
// Scrive la stringa "BY: nome" in una nuova linea // Scrive la stringa "BY: nome" in una nuova linea
FILE* file = fopen(nomeFile, "a"); FILE* file = fopen(nomeFile, "a");
char nome2[256] = "\nBY: "; char nome2[256] = "\nBY: ";
strcat(nome2,nome); strcat(nome2,nome);
fputs(nome2,file); fputs(nome2,file);
// Chiude il file // Chiude il file
fclose(file); fclose(file);
} }
int main() { int main() {
leggiFileCaratterePerCarattere("vmware.log"); leggiFileCaratterePerCarattere("vmware.log");
pausa(); pausa();
copiaFileCaratterePerCarattere("vmware.log", "copia.txt"); copiaFileCaratterePerCarattere("vmware.log", "copia.txt");
pausa(); pausa();
cambiaNomeFile("copia.txt", "log.txt"); cambiaNomeFile("copia.txt", "log.txt");
pausa(); pausa();
cancellaFile("log.txt"); cancellaFile("log.txt");
pausa(); pausa();
copiaPrimi100Caratteri("vmware.log", "copia100.dat"); copiaPrimi100Caratteri("vmware.log", "copia100.dat");
aggiungiStringa("copia100.dat", "Manuel Vichi"); aggiungiStringa("copia100.dat", "Manuel Vichi");
return 0; return 0;
} }