首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

小弟我写了一个小小的程序,但是发现结果不对,大侠帮小弟我看一下,小弟我实在想不明白

2012-03-15 
我写了一个小小的程序,但是发现结果不对,大侠帮我看一下,我实在想不明白#includeiostream#includefstre

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

热点排行