std:: feof
| I/O manipulators | ||||
| Print functions (C++23) | ||||
| C-style I/O | ||||
| Buffers | ||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(C++20)
|
||||
| Streams | ||||
| Abstractions | ||||
| File I/O | ||||
| String I/O | ||||
| Array I/O | ||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(C++23)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
|
(
C++98/26*
)
|
||||
| Synchronized Output | ||||
|
(C++20)
|
||||
| Types | ||||
| Error category interface | ||||
|
(C++11)
|
||||
|
(C++11)
|
| Types and objects | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Functions | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Определено в заголовке
<cstdio>
|
||
|
int
feof
(
std::
FILE
*
stream
)
;
|
||
Проверяет, достигнут ли конец заданного файлового потока.
Содержание |
Параметры
| stream | - | файловый поток для проверки |
Возвращаемое значение
Ненулевое значение, если достигнут конец потока, в противном случае 0 .
Примечания
Эта функция сообщает только о состоянии потока, как это было зафиксировано последней операцией ввода-вывода, и не проверяет связанный источник данных. Например, если последней операцией ввода-вывода был
std::fgetc
, который вернул последний байт файла,
std::feof
возвращает ноль. Следующий вызов
std::fgetc
завершается неудачей и изменяет состояние потока на
конец файла
. Только тогда
std::feof
возвращает ненулевое значение.
В типичном использовании обработка входного потока останавливается при любой ошибке;
feof
и
std::ferror
затем используются для различения различных условий ошибки.
Пример
#include <cstdio> #include <cstdlib> int main() { int is_ok = EXIT_FAILURE; FILE* fp = std::fopen("/tmp/test.txt", "w+"); if (!fp) { std::perror("File opening failed"); return is_ok; } int c; // Примечание: int, а не char, требуется для обработки EOF while ((c = std::fgetc(fp)) != EOF) // Стандартный цикл чтения файла ввода-вывода C std::putchar(c); if (std::ferror(fp)) std::puts("I/O error when reading"); else if (std::feof(fp)) { std::puts("End of file reached successfully"); is_ok = EXIT_SUCCESS; } std::fclose(fp); return is_ok; }
Вывод:
End of file reached successfully
Смотрите также
|
проверяет, достигнут ли конец файла
(публичная функция-член
std::basic_ios<CharT,Traits>
)
|
|
|
очищает ошибки
(функция) |
|
|
выводит строку символов, соответствующую текущей ошибке, в
stderr
(функция) |
|
|
проверяет наличие ошибки файла
(функция) |
|
|
Документация C
для
feof
|
|