嗯~~能读到文件结尾符么?有么?以前DOS下的TXT文件好像有,用PCTOOLS能看到一些并非TXT的文档被标注了不少EOF标志,现在应该没有,文件是否结尾是由句柄指向的位置和文件大小决定的,你用eof()来判断是否结尾,在windows中EOF被定义为-1,并非是文件中一个实际的符号。

解决方案 »

  1.   

    如果是文本文件,读到文件结束符表示文件结束(我猜应该是‘\0’)。
    如果是二进制文件……searph说了。看起来你大概是用文本方式读二进制文件吧。二进制文件中任何字符都有可能,而文本文件的正文是不会出现0的。
      

  2.   

    我记得在上个世纪DOS的TXT文件中以0xff字符作为结束符
      

  3.   

    你用什么方式打开文件的?fopen, open, 还是 Windows API CreateFile?应该不用关心什么是结束符的。
      

  4.   

    结束符是Ctrl+Z,ASCII码是26。不过这个标识只对文本文件有效,而且是用传统的读写方法才起作用。现在它的作用是越来越小了。
      

  5.   

    GoodHope 兄说的对,其实用二进制方式读写就行了
      

  6.   

    如果是二进制文件,用feof()判断
      

  7.   

    用 什 么 语 言 写 的 , 如 果 是 C 语 言 那 feof() 应 该 能 判 断 , 如 果 有 循 环 , 则 多 循 环 一 次 。 
      

  8.   

    我给你提供一个方案:
        在你保存数据时先保存一个数据的长度如:
        CFile MyFile;
        int DataLength;
        
        DataLength=sizeof(s);
        .....
        MyFile.Write(DataLength,sizeof(DataLength));
    再保存你的数据:
        然后在读取得数据的时候先取得一个数据的长度:
        MyFile.Read(DataLength,sizeof(DataLength));
        char* s=new char[DataLength+1];
        MyFile.Read(s,DataLength);
        s[DataLength+1]='\0';//确保最后一个字节为结束符
    ......
      

  9.   

    无论是二进制还是文本,都可以用feof()来检测是否到结尾。