读书人

小弟我写了一个小小的程序,但是发现结

发布时间: 2012-03-15 11:50:38 作者: rapoo

我写了一个小小的程序,但是发现结果不对,大侠帮我看一下,我实在想不明白
#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();
}


我是在VC++6.0下编译运行的,可是读出来的结果不是我想要的.

我的file.txt文件中的内容是 12,但是运行出来的结果是: 1 2 2
为什么会多出一个2来,请大侠帮我解释一下,谢谢了,

[解决办法]
inFile.get(ch);
你get到最后一个字符,ios::eof并没有被设置,即inFile.eof()为假
则继续循环,当你在get一次的时候,ios::eof才被设置,但是这是ch又被输出了一次
所以多了一个字符

读书人网 >C++

热点推荐