2011-06-28 10 views
0

C++のファイルから単語のリストを読み込もうとしています。ただし、最後の単語は2回読み込まれます。なぜそうなのか分かりません。誰かが私を助けることができますか?C++でファイルを読み取る

int main() { 

ifstream fin, finn; 
vector<string> vin; 
vector<string> typo; 
string word; 
fin.open("F:\\coursework\\pz\\gattaca\\breathanalyzer\\file.in"); 
if (!fin.is_open()) 
    cout<<"Not open\n"; 
while (fin) { 
    fin >> word; 
    cout<<word<<endl; 
    vin.push_back(word); 
} 
fin.close(); 
} 
+0

受け入れ==(あなたが尋ねた20分後)最良の答えの下で右のマークをクリックしてください – iammilind

答えて

2

あなたが実行する必要があります。fin >> wordが失敗した

while((fin >> word).good()) { 
    vin.push_back(word); 
} 

ので、あなたはそれをチェックしません。

4

あなたのループ状態は1でオフになっています:

while (fin >> word) { 
    cout<<word<<endl; 
    vin.push_back(word); 
} 
1

2度読むことはありません。 fin >> wordが失敗するため、これは単に古い値です。 使用

while(fin >> word) 
{ 
    ... 
} 

代わりに。 失敗した場合、ループの読み取りと停止を試みます。

関連する問題