2013-03-30 9 views
5

Seekgは、myFileでEOFに達したときに動作しないようです。seekgがgetlineで動作しないのはなぜですか?

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を配置することを求めるだろうが、どのように私はそれを達成することができますか?

+0

[seekg()関数の重複は可能です](http://stackoverflow.com/questions/11264764/seekg-function-fails) – amo

答えて

10

あなたはmyFile.seekg()に呼び出しの前にエラーフラグをクリアしていることを確認してください:EOFフラグの後

myFile.clear(); 

はベンが設定されている、あなたは何を抽出することができません。これらのフラグをクリアして、再度抽出できるようにする必要があります。

+0

ありがとうございました。 – rluks

関連する問題