C ++ EOF Getline错误

时间:2010-02-27 09:19:40

标签: c++ file-io eof

我正在使用其中一个相关问题中使用的表单。唯一的问题是我一直在文件的末尾。

该文件是一个fstream,str是一个字符串。

未处理的异常 Microsoft C ++异常:std :: ios_base :: failure

while (getline(file, str)) 
{

}

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) }

1 个答案:

答案 0 :(得分:2)

如果您收到std::ios_base::failure个异常,则很可能是由您(或您正在使用的某些代码)为您的文件启用它们引起的。它们应该默认关闭。只是为了测试,您可以尝试在while循环之前立即关闭它们,但您可能需要调查是什么打开它们。

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