为什么seekg不适用于getline?

rlu*_*uks 6 c++ getline ifstream seekg

当我在myFile中达到EOF时,Seekg似乎不起作用.

ifstream myFile("/path/file");
for(int i; i < 10; i++){
    myFile.seekg(0);//reset position in myFile
    while(getline(myFile, line)){
        doSomething
    }
}
Run Code Online (Sandbox Code Playgroud)

所以,现在我在每个循环打开输入流:

for(int i; i < 10; i++){
    ifstream myFile("/path/file");//reset position in myFile
    while(getline(myFile, line)){
        doSomething
    }
}
Run Code Online (Sandbox Code Playgroud)

但我宁愿寻求位置0.我怎样才能实现这一目标?

Jos*_*eld 12

确保在调用之前清除错误标志myFile.seekg():

myFile.clear();
Run Code Online (Sandbox Code Playgroud)

在EOF标志设置完之后,您将无法提取任何内容.你必须清除那些标志才能再次提取.