所以我已经从文件中读取了所有行
while (getline(ifile,line))
{
// logic
}
Run Code Online (Sandbox Code Playgroud)
ifile是ifstream,line是一个字符串
我的问题是我现在想再次使用getline,并且似乎无法返回到文件的开头,因为正在运行
cout << getline(ifile,line);
Run Code Online (Sandbox Code Playgroud)
将返回0
我试图使用:
ifile.seekg (0, ios::beg);
Run Code Online (Sandbox Code Playgroud)
无济于事,似乎没有效果.如何返回文件的开头?
Kon*_*lph 70
由于您已到达文件末尾,因此eof将设置标志.您需要清除使用ifile.clear- 然后尝试寻求:
ifile.clear();
ifile.seekg(0, ios::beg);
Run Code Online (Sandbox Code Playgroud)
这是因为已经在流上设置了eof标志 - 因为您到达文件的末尾.所以你必须清除它作为一个额外的步骤.
例如
ifile.clear();
ifile.seekg (0, ios::beg);
Run Code Online (Sandbox Code Playgroud)