为什么seekg不适用于getline?

时间:2013-03-30 16:05:48

标签: c++ ifstream getline 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
    }
}

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

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

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

1 个答案:

答案 0 :(得分:12)

确保在致电myFile.seekg()之前清除错误标记:

myFile.clear();

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