РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
461 of 815 menu

Метод eof

Метод eof класса ios возвращает true, если при последнем чтении из потока был достигнут конец файла, и false в противном случае. Метод не принимает параметров и не изменяет состояние потока. Флаг eofbit устанавливается автоматически, когда операция чтения пытается прочитать данные за пределами конца файла. Важно понимать, что метод возвращает true только после того, как была предпринята попытка чтения за концом файла, а не в момент, когда был прочитан последний символ.

Синтаксис

bool eof() const;

Пример

Давайте откроем файл и будем читать из него символы до тех пор, пока не достигнем конца файла. В цикле будем выводить каждый прочитанный символ:

#include <iostream> #include <fstream> using namespace std; int main() { ofstream out("test.txt"); out << "abcde"; out.close(); ifstream in("test.txt"); char ch; while (!in.eof()) { in.get(ch); if (!in.eof()) { cout << ch; } } cout << endl; in.close(); return 0; }

Результат выполнения кода:

"abcde"

Пример

Давайте проверим, что метод eof возвращает true только после попытки чтения за концом файла. Прочитаем все символы из файла и выведем состояние флага:

#include <iostream> #include <fstream> using namespace std; int main() { ofstream out("test.txt"); out << "12345"; out.close(); ifstream in("test.txt"); char ch; for (int i = 0; i < 5; i++) { in.get(ch); cout << "Read: " << ch << ", eof: " << in.eof() << endl; } in.get(ch); cout << "After reading past end, eof: " << in.eof() << endl; in.close(); return 0; }

Результат выполнения кода:

"Read: 1, eof: 0" "Read: 2, eof: 0" "Read: 3, eof: 0" "Read: 4, eof: 0" "Read: 5, eof: 0" "After reading past end, eof: 1"

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

  • класс ios,
    который является базовым классом для потоков ввода-вывода
  • метод good,
    который проверяет, что поток не имеет ошибок
  • метод fail,
    который проверяет, произошла ли ошибка при операции ввода-вывода
  • метод bad,
    который проверяет, произошла ли критическая ошибка потока
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить