Spec-Zone.ru › C++

std::basic_ios<CharT,Traits>::eof

bool eof() const;

Возвращает true, если связанный поток достиг конца файла. В частности, возвращает true, если eofbit установлен в rdstate().

Список условий, устанавливающих eofbit, см. в разделе ios_base::iostate.

Параметры

(нет)

Возвращаемое значение

true, если произошло достижение конца файла, и false в противном случае.

Примечания

Эта функция сообщает только состояние потока, установленное последней операцией ввода-вывода; она не проверяет связанный источник данных. Например, если последней операцией ввода-вывода был вызов get(), который вернул последний байт файла, eof() возвращает false. Следующий вызов get() не сможет ничего прочитать и установит eofbit. Только после этого eof() вернёт true.

При обычном использовании обработка входного потока прекращается при любой ошибке. Затем eof() и fail() можно использовать для различения различных условий ошибки.

Пример

#include <cstdlib>
#include <fstream>
#include <iostream>

int main()
{
    std::ifstream file("test.txt");
    if (!file) // operator! is used here
    {  
        std::cout << "File opening failed\n";
        return EXIT_FAILURE;
    }

    // typical C++ I/O loop uses the return value of the I/O function
    // as the loop controlling condition, operator bool() is used here
    for (int n; file >> n;)
       std::cout << n << ' ';
    std::cout << '\n';

    if (file.bad())
        std::cout << "I/O error while reading\n";
    else if (file.eof())
        std::cout << "End of file reached successfully\n";
    else if (file.fail())
        std::cout << "Non-integer data encountered\n";
}

См. также

В следующей таблице показаны значения методов доступа basic_ios (good(), fail() и т. д.) для всех возможных комбинаций флагов ios_base::iostate:

Флаги ios_base::iostate Методы доступа basic_ios
eofbit failbit badbit good() fail() bad() eof() operator bool operator!
false false false true false false false true false
false false true false true true false false true
false true false false true false false false true
false true true false true true false false true
true false false false false false true true false
true false true false true true true false true
true true false false true false true false true
true true true false true true true false true
feof
проверяет достижение конца файла
(функция)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_ios/eof

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API