检查 string::getline 中的 eof
如何使用 std::getline
函数检查文件结尾?如果我使用 eof()
它不会发出信号 eof
直到我尝试读取文件末尾.
How do I check for end-of-file using the std::getline
function? If I use eof()
it won't signal eof
until I attempt to read beyond end-of-file.
推荐答案
C++ 中的规范阅读循环是:
The canonical reading loop in C++ is:
while (getline(cin, 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)
}
相关文章