mac47 2 Napisano 11 Kwietnia 2013 Udostępnij Napisano 11 Kwietnia 2013 (edytowane) Napisałem taki kod w celu porównania dwóch plików tekstowych. Powie mi ktoś czemu program od razu trafia na EOF w pierwszym wyowołaniu fgetc, pomimo że w obu plikach znajduje się duża ilość znaków. #include <stdio.h> #include <stdlib.h> int main() { FILE* plik; FILE* kopia; int t=0; int t1=0; if (plik=fopen("BaseInput.txt", "r")==NULL) exit(1); if (kopia=fopen("BaseInput2.txt", "r")==NULL) exit(2); while (1) { if (t=fgetc(plik)==EOF) exit(6); if (t1=fgetc(kopia)==EOF) exit(7); if (t==t1) continue; else { printf("Rozne"); exit(5); } } if (fclose(plik)==EOF) exit(3); if (fclose(kopia)==EOF) exit(4); return 0; } Edytowane 11 Kwietnia 2013 przez mac47 Link to post Share on other sites
Rozwiązanie barszcz 19 Napisano 11 Kwietnia 2013 Rozwiązanie Udostępnij Napisano 11 Kwietnia 2013 (edytowane) Nie: if (plik=fopen("BaseInput.txt", "r")==NULL) tylko: if ((plik=fopen("BaseInput.txt", "r"))==NULL) I analogicznie drugi. Edytowane 11 Kwietnia 2013 przez barszcz 1 Link to post Share on other sites
mac47 2 Napisano 12 Kwietnia 2013 Autor Udostępnij Napisano 12 Kwietnia 2013 To samo dotyczyło : nie if (t=fgetc(plik)==EOF) exit(6); tylko if ((t=fgetc(plik))==EOF) exit(6); i to samo następnej linii i fclose Link to post Share on other sites
Recommended Posts