Ошибка C ++ EOF Getline - PullRequest
       21

Ошибка C ++ EOF Getline

0 голосов
/ 27 февраля 2010

Я использовал форму, использованную в одном из связанных вопросов. Единственная проблема заключается в том, что я продолжаю получать права в конце файла.

Файл является fstream, а str является строкой.

Необработанное исключение Microsoft C ++ исключение: std :: ios_base :: fail

while (getline(file, str)) 
{</p>

<p>}</p>

<p>if (cin.bad()) {
    // IO error
} else if (!cin.eof()) {
    // format error (not possible with getline but possible with operator>>)
} else {
    // format error (not possible with getline but possible with operator>>)
    // or end of file (can't make the difference)
}</p>

<p>

1 Ответ

2 голосов
/ 27 февраля 2010

Если вы получаете std::ios_base::failure исключения, это, скорее всего, вызвано тем, что вы (или какой-то код, который вы используете) включили их для своего файла. По умолчанию они должны быть отключены. Просто для проверки вы можете попробовать отключить их непосредственно перед циклом while, но вам, вероятно, нужно выяснить, что их включает.

file.exceptions(std::ios_base::goodbit);
...