Ben*_*Ben 1 c++ iostream file getline
我正在使用"getline"来读取文本文件中的某些行.它应该工作,但我多次调用该方法.
while(getline(file, line))
{
//Do something
}
//More code in between
while(getline(file, line))
{
//Do something else
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我第二次调用"getline"时,它从之前完成的位置开始读取(例如,如果第一个while循环在第二行结束,则下一个循环从第三行开始).如何确保我的程序每次都从第一行读取文件?
如果您需要多次使用相同的第一行,我认为您应该重新考虑您的策略.
你会避免很多不必要的I/O操作......
尽管如此,正如其他人所建议的那样,如果你想以这种方式进行任何理由,你需要插入:
myinputstream.clear(); //clear the buffer
myinputstream.seekg(0, ios::beg); //reset the reading position to beginning
Run Code Online (Sandbox Code Playgroud)
每次尝试读取同一文件之间.不要忘记最终关闭它.
myinputstream.close();
Run Code Online (Sandbox Code Playgroud)