C ++ ifstream failbit и badbit

В случаеifstream в C ++, при каких условияхfailbit а такжеbadbit флаги установлены?

 Eitan T18 июн. 2012 г., 16:42
@ Джейк Вы читали документацию?
 BoBTFish18 июн. 2012 г., 16:41

Ответы на вопрос(1)

Решение Вопроса

cplusplus.com:

failbit is generally set by an input operation when the error was related to the internal logic of the operation itself, so other operations on the stream may be possible. While badbit is generally set when the error involves the loss of integrity of the stream, which is likely to persist even if a different operation is performed on the stream. badbit can be checked independently by calling member function bad.

Вsimple words, если вы получитеnumber когда ожидаете получитьletterэтоfailbit, Еслиserious происходит ошибка, которая вообще нарушает способность читать из потока - этоbadbit.

Кроме упомянутых флагов, есть и третий, очень похожий & # x2014;eofbit, Вы можете проверить состояние, используя несколько функций:ios::fail, ios::good а такжеios::bad

И вы можете ознакомиться сiostream library на ресурсе MSDN тоже.

Finally, если вы ищетеcorrect Решение о том, как обрабатывать все ошибки и исключения при чтении из файла (или при доступе к какому-либо файлу или каталогу), я настоятельно рекомендую вам прочитать очень полную и хорошо написанную статью & quot;Чтение файлов в C ++ с использованием ifstream: правильно обрабатывает badbit, failbit, eofbit и perror ()& quot ;, в конце которого вы найдете несколькоИдеальные решения, Статью действительно стоит прочитать.

 02 сент. 2015 г., 09:21
@ Jan-PhilipGehrcke Я не могу открыть ссылки выше.
 02 сент. 2015 г., 09:30
Да, к сожалению. Пожалуйста, используйте вместо этого кеш Google.
 02 сент. 2015 г., 14:24
Хм, это странно, потому что все, что я получаю, этоThis webpage is not available и чуть ниже:ERR_CONNECTION_RESET.
 05 сент. 2015 г., 23:03
@gahcep: похоже, это как-то связано с защитой / кешем / cdn / оптимизатором CloudFlare, установленным перед моим веб-сайтом. По крайней мере, другие пользователи время от времени сообщают об этой ошибке для других сайтов, управляемых CloudFlare. Это беспокоит, но мне все еще нужно отлаживать это дальше (сложно, без последствий). Не уверен, может быть, я должен отказаться от CloudFlare или хотя бы некоторые их функции.
 02 сент. 2015 г., 13:02
Я только что проверил все ссылки в ответе, и они работают на меня. Я распространил (pingdom) мониторинг доступности моего веб-сайта, и он не обнаружил проблему. Проблема сохраняется для вас? (после обсуждения мы должны удалить наши комментарии)

Ваш ответ на вопрос