一个读文件的程序,我是在找不出出错的原因,帮我看一下,谢谢!
#include <iostream >
#include <fstream >
using namespace std;
void main()
{
ifstream inFile;
inFile.open("file.txt",ios::in);
if( !inFile )
cout < < "can "t open" < < endl;
char ch = "\0 ";
while( !inFile.eof() )
{
inFile.get(ch);
cout < < ch < < endl;
}
inFile.close();
}
如果我file.txt中的内容是:1 2 3 为什么最后输出的结果是 1 2 3 3
如果我把程序改成
inFile.get(ch);
while( !inFile.eof() )
{
cout < < ch < < endl;
inFile.get(ch);
}
就可以输出正常结果: 1 2 3
[解决办法]
while( !inFile.eof() )
{
inFile.get(ch);
cout < < ch < < endl;
}
//读取到最后一个字符,eof标志为被设置,继续执行一次循环,输出,eof标志被设置,结束循环
所以多输出了一个字符
while( !inFile.eof() )
{
cout < < ch < < endl;
inFile.get(ch);
}
// 输入最后一个字符后,继续获取,eof标志被设置,循环退出,