1 Востаннє редагувалося signore_massimo (31.10.2014 18:50:29)

Тема: Чому різний результат?

Є файл. У файлі слово із 7 літер. Зчитуємо посимвольно, нарощуємо змінну.
В першому випадку для визначення кількості символів у файлі користуюсь feof(FILE *);
В другому порівнюю значення, яке повертає fgetc(FILE *) із EOF.

FILE * f1 = fopen("somefile", "r");
int nByfeof = 0;
while( !feof(f1) ) {
    fgetc(f1);
    nByfeof++;
}
FILE * f1 = fopen("somefile", "r");
int nByEOF;
while(fgetc(f1) != EOF) {
    nByEOF++;
}

nByfeof матиме 8, а nByEOF 7.
Чому після останнього символа, який повертає fgetc лічильник не 0?

2

Re: Чому різний результат?

Подякували: koala, signore_massimo2