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

Метод fail

Метод fail класса ios возвращает true, если в потоке установлен флаг ошибки формата или операции. Это означает, что предыдущая операция ввода-вывода завершилась неудачно. Метод не принимает параметров и возвращает значение типа bool.

Флаг failbit устанавливается, когда операция ввода не смогла прочитать ожидаемые данные, например, при попытке считать число там, где находится текст. Флаг badbit устанавливается при более серьёзных ошибках, таких как потеря целостности потока. Метод fail возвращает true, если установлен любой из этих двух флагов.

Синтаксис

bool fail() const;

Пример

Давайте попробуем считать число из строки, где хранится текст, и проверим состояние потока с помощью метода fail:

#include <iostream> #include <sstream> using namespace std; int main() { istringstream iss("abcde"); int num; iss >> num; if (iss.fail()) { cout << "Input failed" << endl; } else { cout << "Input succeeded" << endl; } return 0; }

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

"Input failed"

Пример

Давайте сравним поведение методов fail и good при успешном считывании числа:

#include <iostream> #include <sstream> using namespace std; int main() { istringstream iss("12345"); int num; iss >> num; cout << "fail: " << iss.fail() << endl; cout << "good: " << iss.good() << endl; return 0; }

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

"fail: 0" "good: 1"

Пример

Давайте очистим флаг ошибки с помощью метода clear и снова проверим состояние потока:

#include <iostream> #include <sstream> using namespace std; int main() { istringstream iss("abcde"); int num; iss >> num; cout << "before clear: " << iss.fail() << endl; iss.clear(); cout << "after clear: " << iss.fail() << endl; return 0; }

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

"before clear: 1" "after clear: 0"

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

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