[英]read file in C++
我正在尝试从 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();
}
您的循环条件关闭了一个:
while (fin >> word) {
cout<<word<<endl;
vin.push_back(word);
}
你需要做:
while((fin >> word).good()) {
vin.push_back(word);
}
因为fin >> word
失败并且您不检查它。
它没有读过两次。 这只是旧值,因为fin >> word
失败。 利用
while(fin >> word)
{
...
}
反而。 如果失败,它会尝试读取并停止循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.