Concetti Chiave
- Il codice si occupa di inizializzare e aprire due file di testo, "primo.txt" e "secondo.txt".
- Viene effettuata la lettura dei caratteri da entrambi i file, ignorando gli spazi e contando i caratteri.
- Alla fine della lettura, il programma stampa il numero di caratteri presenti in ciascun file.
- Il confronto tra i file determina se sono uguali o quanti caratteri corrispondono tra i due file.
- Il programma gestisce errori nell'apertura dei file e usa comandi di sistema per interrompere l'esecuzione in caso di problemi.
Come si effettua l'inizializzazione e apertura file?
#include
#include
#define lenght 10000
#include
#include
int main(int argc, char *argv[]) {
FILE *giovanni;
FILE *giuseppe;
int filippo;
int f1,f2;
int i=0;
int j=0;
int k;
int m=0;
int y=0,z=0;
char c[100];
char leo[lenght];
char orfino[lenght];
if((giovanni=fopen("C:\\cygwin64\\home\\Giuseppe\\primo.txt","r+"))==NULL){
printf("Errore");
system("pause");
exit(0);
}
else {
while(!feof(giovanni)){
fgetc(giovanni)==c[y];
if(c[y]==' '){
}
else {
leo[j]=c[y];
j++;
}
}
fclose(giovanni);
}
if((giuseppe=fopen("C:\\cygwin64\\home\\Giuseppe\\secondo.txt","r+"))==NULL){
printf("Errore");
system("pause");
exit(0);
}
else {
while(!feof(giuseppe)){
fgetc(giuseppe)==c[z];
if(c[z]==' '){
}
else {
orfino=c[z];
i++;
}
}
fclose(giuseppe);
}
Risultati del confronto
printf("Il primo file contiene %d caratteri\n",j);
printf("Il secondo file contiene %d caratteri\n",i);
if(j==i){
printf("I file sono uguali\n");
}
else if(j
for(k=0;k
if(leo[k]==orfino[k]){
m++;
}
}
printf("Ci sono %d caratteri uguali\n",m);
}
else if(j>i){
for(k=0;k
if(leo[k]==orfino[k]){
m++;
}
}
printf("Ci sono %d caratteri uguali\n",m);
}
system("pause");
return 0;
}
Domande da interrogazione
- Qual è il primo passo per confrontare i due file nel codice?
- Come viene gestita la lettura dei caratteri dai file?
- Qual è il risultato finale del confronto tra i due file?
Il primo passo è l'inizializzazione e l'apertura dei file "primo.txt" e "secondo.txt" utilizzando la funzione `fopen`. Se l'apertura fallisce, viene stampato un messaggio di errore e il programma termina.
I caratteri vengono letti uno alla volta utilizzando `fgetc`, e solo i caratteri che non sono spazi vengono memorizzati in due array distinti, `leo` per il primo file e `orfino` per il secondo file.
Il programma confronta il numero di caratteri nei due file e, se sono uguali, stampa che i file sono uguali. In caso contrario, conta e stampa il numero di caratteri uguali tra i due file.