Синтаксис:
bool stream::fail();
Функция fail() возвращат истину, если обнаружена ошибка в текущем потоке, иначе возвращает ложь. Функция может использоваться для проверки успешности предыдущей операции.
Примеры сбоев, для которых наначаются ошибки:
файл не найден (при открытии файла для чтения),
файл не может быть создан (при открытии файла для записи),
конец файла достигнут до завершения чтения запрошенных данных,
некорректный формат данных (например символы, при чтении чисел).
Заданное один раз, состояние ошибки будет переводить все остальные операции с потоком в состояние ошибки, пока состояние ошибки не будет сброшено с помощью функции сброса.
Смотрите также: bad, clear, eof, exceptions, good, rdstate
Состояния потока:
if (s): Предыдущая операция успешна (аналог !s.fail() ).
if (s.fail()): Предыдущая операция не удалась.
if (s.eof()): Произведена попытка чтения за границей файла.
if (s.bad()): Состояние потока не определено. Поток не может быть больше использован.
if (s.good()): Нет ни одного из состояний bad/eof/fail.