feof
Определено в заголовке <stdio.h> | ||
|---|---|---|
int feof( FILE *stream ); |
Проверяет, достигнут ли конец заданного потока файла.
Параметры
| stream | - | проверяемый поток файла |
Возвращаемое значение
ненулевое значение, если конец потока достигнут, в противном случае 0
Примечания
Эта функция только сообщает о состоянии потока, как оно было получено в результате последней операции ввода-вывода, она не проверяет связанный источник данных. Например, если последняя операция ввода-вывода была fgetc, которая вернула последний байт файла, feof возвращает ноль. Следующая fgetc завершается неудачей и изменяет состояние потока на конец файла. Только тогда feof возвращает ненулевое значение.
В типичном использовании обработка входного потока прекращается при любой ошибке; feof и ferror используются для различения различных условий ошибок.
Пример
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
const char* fname = "/tmp/unique_name.txt"; // or tmpnam(NULL);
int is_ok = EXIT_FAILURE;
FILE* fp = fopen(fname, "w+");
if (!fp) {
perror("File opening failed");
return is_ok;
}
fputs("Hello, world!\n", fp);
rewind(fp);
int c; // note: int, not char, required to handle EOF
while ((c = fgetc(fp)) != EOF) // standard C I/O file reading loop
putchar(c);
if (ferror(fp))
puts("I/O error when reading");
else if (feof(fp)) {
puts("End of file is reached successfully");
is_ok = EXIT_SUCCESS;
}
fclose(fp);
remove(fname);
return is_ok;
}Возможный вывод:
Hello, world! End of file is reached successfully
Ссылки
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.21.10.2 Функция feof (с. 339)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.19.10.2 Функция feof (с. 305)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.9.10.2 Функция feof
См. также
| очищает ошибки (функция) |
|
отображает строку символов, соответствующую текущей ошибке, в stderr (функция) |
|
| проверяет наличие ошибки файла (функция) |
|
Документация C++ для feof |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/io/feof