我对以下代码中的 ifstream::operator>> 行为有疑问:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
int main () {
ifstream inFile("test.txt");
string buffer;
while (!inFile.eof()) {
inFile >> buffer;
cout << buffer << endl;
}
return 0;
}
如果 test.txt 的最后一行不为空,则此代码运行良好,例如:
One two
Three four
Five six
但是,如果 test.txt 是这样写的:
One two
Three four
Five six
(empty line)
将cout
显示两个“六个”字符串。这是与 Windows 的 \r\n 或类似的问题有关的问题吗?我使用微软 VC++ 2010。
提前致谢。