Namespaces
Variants

feof

From cppreference.net
< c ‎ | io
Определено в заголовочном файле <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
(функция)
проверяет наличие ошибки файла
(функция)