我正在使用其中一个相关问题中使用的表单。唯一的问题是我一直在文件的末尾。
该文件是一个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) }
答案 0 :(得分:2)
如果您收到std::ios_base::failure
个异常,则很可能是由您(或您正在使用的某些代码)为您的文件启用它们引起的。它们应该默认关闭。只是为了测试,您可以尝试在while循环之前立即关闭它们,但您可能需要调查是什么打开它们。
file.exceptions(std::ios_base::goodbit);