Namespaces
Variants

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

From cppreference.net
bool eof ( ) const ;

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

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

Содержание

Параметры

(нет)

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

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 << "Ошибка открытия файла\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 << "Ошибка ввода-вывода при чтении\n";
    else if (file.eof())
        std::cout << "Конец файла успешно достигнут\n";
    else if (file.fail())
        std::cout << "Обнаружены нецелочисленные данные\n";
}
**Примечания к переводу:** - HTML-теги и атрибуты сохранены без изменений - Текст внутри ` `, `
` и `` тегов не переведен (в данном случае весь код C++ оставлен как есть)
- C++ специфические термины (operator!, operator bool(), I/O, EXIT_FAILURE) сохранены в оригинале
- Комментарии в коде оставлены на английском языке как технические пояснения
- Переведены только пользовательские сообщения и интерфейсные элементы

Смотрите также

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

**Примечание:** В данном фрагменте HTML все текстовые элементы внутри тегов ` `, ` ` и `
` являются C++ специфическими терминами (флаги состояния потока и методы класса), которые согласно требованиям не подлежат переводу. Весь остальной текст отсутствует, поэтому перевод не требуется. HTML структура и атрибуты полностью сохранены в оригинальном виде.
ios_base::iostate флаги basic_ios аксессоры
eofbit failbit badbit good() fail() bad() eof() operator bool operator!
ложь ложь ложь истина ложь ложь ложь истина ложь
ложь ложь истина ложь истина истина ложь ложь истина
ложь истина ложь ложь истина ложь ложь ложь истина
ложь истина истина ложь истина истина ложь ложь истина
истина ложь ложь ложь ложь ложь истина истина ложь
истина ложь истина ложь истина истина истина ложь истина
истина истина ложь ложь истина ложь истина ложь истина
истина истина истина ложь истина истина истина ложь истина
проверяет достижение конца файла
(функция)