为什么使用seekg函数无法与getline函数一起使用?

9

当我在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
    }
}

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

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

但我更想将位置定位到0。我该如何实现?


可能是[seekg()函数失效]的重复问题。(http://stackoverflow.com/questions/11264764/seekg-function-fails) - amo
1个回答

15

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

myFile.clear();

在设置了EOF标志后,您将无法提取任何内容。您需要清除这些标志才能再次进行提取。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接