Caute
Mam nasledovny program:
Kód:
#include <stdio.h>
main()
{
FILE *fr1, *fr2;
int z;
z=0;
fr1 = fopen("pismena1.txt", "r");
fr2 = fopen("pismena2.txt", "r");
while (feof(fr1) == 0 || feof(fr2) == 0){
if(getc(fr1) != getc(fr2)){
z++;
}
}
if (z == 0)
printf("subory su naprosto zhodne");
else
printf("subory sa nezhoduju v %d znakoch", z);
return 0;
}
No a v prvom rade otazka znie makro feof funguje tak ze nulova hodnota je pokial nedosiahol konca subora a nenulova pokial dosiahol ale cital som nieco ze to dava nenulovu az potom ako precita eof a ze sa to potom nejak pokazi a slucka ide odznova stale. Keby mi to mohol niekto objasnit prosim.
No a druha vec je v tom mojom programe kde je podmienka while tak vlastne ked mam subory z roznou dlzkou, povedzme ten prvy obsahuje menej znakov tak logicky kedze tam je OR a v prvom sa uz nema co citat feof sa rovna 1 a cyklus sa ukonci bez toho aby sa docital ten druhy subor dokonca. No ale nie on sa nejako zazracne cita dalej lebo ked program spustim tak vypise spravne o kolko znakov sa subory lisia. Pre mna by mi tam viac sedelo AND akoze ked su obidva docitane tak skonci cyklus. Takze tomu nechapem. Mohol by mi to prosim niekto vysvetlit?