CodeNet / Языки программирования / C / C++ / Руководства и справочные материалы по C/C++ / Справочники по функциям / Справочник по библиотечным функциям языка Си
feof - проверка признака конца файла
Описание
Определяет, находится ли поток fp в конце файла.
Использование
#include <stdio.h> int feof (FILE *fp); /* ANSI */
Возвращаемое значение
Ненулевое значение, если текущая позиция является кон- цом(т.е. установлен флаг `eof'). После установки флага не разрешены операции чтения. Флаг опускается при опе- рациях rewind, fseek, и при закрытии потока. Возвраща- ет 0, если флаг не установлен.
Пример
#include <stdio.h> #define BUFSIZE 128 char buffer [BUFSIZE]; main() { FILE *fp; fp = fopen("file.dat", "r"); { while(!feof(fp)) fgets(buffer, BUFSIZE, fp); } printf("Файл прочитан, встретился EOF \n", buffer); }
Рекомендация
Смотрите также clearerr, ferror.
Оставить комментарий
Комментарии
1.
+2 / -0
10 марта 2006, 00:04:55
Как ни странно, такая же проблема.
Только у меня почему то после fread - последний блок попадает дважды. и только потом EOF.
Только у меня почему то после fread - последний блок попадает дважды. и только потом EOF.
2.
10 ноября 2005, 14:18:17
while(!feof(fp)) - фигня, как показала многострадальная проверка - while((symbol_=fgetc(conf_))!=EOF) - только так я смог узнать, точно ли EOF.
Даже feof(fp)!=true тоже не помагает.
Я всегда получаю значение EOF при проверке feof, чтобы я не делал :-((
Даже feof(fp)!=true тоже не помагает.
Я всегда получаю значение EOF при проверке feof, чтобы я не делал :-((