【发布时间】:2013-09-06 16:47:10
【问题描述】:
我正在编写一个程序来从文件中获取输入并将其显示在控制台上。问题是最后一个条目被重复了两次。代码如下:-
int main(void)
{
string filename;
int grades;
cout<<"Enter the filename:"<<endl;
getline(cin,filename);
ifstream inFile(filename.c_str(),ios::in);
if(!inFile){
cout<<"File does not exist."<<endl;
exit(1);
}
while(!inFile.eof())
{
inFile>>grades;
cout<<grades<<endl;
}
inFile.close();
return 0;
}
你能帮我找出错误吗?我在网上搜索过,我的代码在语法和逻辑上似乎都是正确的。
【问题讨论】:
-
SO 上已经有几十个帖子了,请搜索一下
-
while(inFile>>grades) -
再一次:不要使用
while(!inFile.eof())。也不要使用while(inFile.good())。 请参阅Why is iostream::eof inside a loop condition considered wrong? -
真正的问题是他从哪里得到这个成语。任何使用它的网站或书籍都对垃圾桶有好处,别无其他。