我写了一个小小的程序,但是发现结果不对,大侠帮我看一下,我实在想不明白
#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又被输出了一次
所以多了一个字符