所以我已经从文件中读取了所有行
while (getline(ifile,line))
{
// logic
}
ifile是ifstream,line是字符串
我的问题是我现在想再次使用getline,似乎无法返回到文件的开头,因为正在运行
cout << getline(ifile,line);
将返回0
我试图使用:
ifile.seekg (0, ios::beg);
无济于事,似乎没有效果。我该如何回到文件的开头?
答案 0 :(得分:61)
由于您已到达文件末尾,因此将设置eof
标志。你需要使用ifile.clear
- 清除它,然后尝试寻找:
ifile.clear();
ifile.seekg(0, ios::beg);
答案 1 :(得分:5)
这是因为在流上设置了eof标志 - 因为你到达了文件的末尾。因此,您必须将此作为额外步骤清除。
例如
ifile.clear();
ifile.seekg (0, ios::beg);
答案 2 :(得分:1)
仅供参考:在我的情况下,订单DID很重要,因此
否则下一个getline操作失败(MSVC v120)