Posto qui di seguito il codice di una mia funzione che dovrebbe confrontare due files dati da me in input e effettuarne una copia in caso che i due programmi sono diversi....
codice:
void contenuto(char *arga, char *argb){
int c1, c2, risposta,diff=0;
FILE *f1 = fopen(arga,"r");
FILE *f2 = fopen(argb,"r");
c1=fgetc(f1); c2=fgetc(f2);
printf("%s %s",arga,argb);
while(c1!=EOF || c2!=EOF){
printf("%d-----------%d",c1,c2);
if(c1!=c2){
printf("I due files non sono uguali cosa vuoi fare?!\n1 per copiare il file1 nel file2\n2 per copiare il file2 nel file1\n3 per ignorare\n");
scanf("%d",&risposta);
if(risposta==1){
copia_file(arga,argb);
fclose(f1);
fclose(f2);
diff=1;
break;
}
if(risposta==2){
copia_file(argb,arga);
fclose(f1);
fclose(f2);
diff=1;
break;
}
}
}
if(diff=0){
printf("I due files sono uguali\n");
fclose(f1);
fclose(f2);
}
}
Il programma dovrebbe aprire i due files e confrontarli lettera per lettera, il problema è che a run-time mi accorgo che il programma non entra mai nella condizione if(c1!=c2) .............. e grazie al printf("%d--------%d,c1,c2"); riesco a vedere che il mio programma stampa a ripetizione 9999--------99999 !!!!!!!!
Anche se i due files che gli passo sono sue normalissimi files di testo ......
Perche??!?!?!?!?
(Ovviamente la funzione copia_file è corretta e da me implementata)
Spero di essere stato chiaro.... Grazie a tutti...