用C ++读取文件

时间:2011-06-28 05:24:43

标签: c++ file

我正在尝试用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();
}

4 个答案:

答案 0 :(得分:4)

你的循环条件被一个人关闭:

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

答案 1 :(得分:2)

你需要这样做:

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

因为fin >> word失败而你没有检查它。

答案 2 :(得分:1)

它没有读过两次。这只是旧值,因为fin >> word失败了。 使用

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

代替。 如果失败,它会尝试读取并停止循环。

答案 3 :(得分:0)