【问题标题】:read file in C++用 C++ 读取文件
【发布时间】:2011-06-28 05:24:43
【问题描述】:

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

【问题讨论】:

  • 接受 == 点击最佳答案下的右标记(20 分钟后您询问)

标签: c++ file


【解决方案1】:

你的循环条件减一:

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

【讨论】:

    【解决方案2】:

    你需要做的:

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

    因为fin &gt;&gt; word 失败而你没有检查它。

    【讨论】:

      【解决方案3】:

      它没有被读过两次。这只是旧值,因为 fin &gt;&gt; word 失败。 使用

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

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

      【讨论】:

        【解决方案4】:
        猜你喜欢
        • 2014-09-03
        • 2017-05-02
        • 1970-01-01
        • 2022-01-02
        • 2012-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多