例如123.txt文件内容如下:(每个字节用8位2进制表示)
10010011,11111111,01011010
就是只有三个字符的文件。
fstream fin("123.txt");
while((ch=fin.get())!=EOF)
{
   执行部分
}
读入第二个字符就不读了,原因:11111111=-1
所以ch=-1
EOF=-1就这么无耻的停了,我是要读到文件末尾啊

解决方案 »

  1.   

    这个不会 据说C++这个库性能比c库低
    你可以
    FILE* fp = fopen("xxx", "wb");
    if (fp)
    while (! feof(fp)){
      fgetc(fp);
    }
      

  2.   

    fstream 改成ifstream,误打了
      

  3.   

    EOF本来是用来判断文件结尾的啊,
    英文ASCII码最高位是0,不会产生11111111
    读入CHAR不会产生-1
    但是我的文件里面会出现11111111这种字符,
      

  4.   

    5楼的意思是:fstream fin("123.txt");
    while(!fin.eof())
    {
      执行部分
    }
      

  5.   

    就是这个意思
    while((ch=fin.get())!=EOF)
    你这样相当于
    while(ch!=EOF)