我正试图从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 openn";
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)
{
...
}
相反。它尝试读取并在失败时停止循环。
检查这些。。
你是如何用C++从文件中读取单词的?
http://www.bgsu.edu/departments/compsci/docs/read.html
http://answers.yahoo.com/question/index?qid=20081216024044AAKidaX