顺序读,每次读一个字符,每次都判断是否为EOF
办法很苯,望高手指正

解决方案 »

  1.   

    循环:每次要求read读一个规定字数,取read的返回值(读的真实字数),如果返回值小于这个数,就是到头了。
      

  2.   

    CFile 有很多种打开文件的方式:
    CFile::typeText 、CFile::typeBinary 
    对于typeText就有文件结束符,而对于二进制文件(CFile::typeBinary )打开方式就没有结束付了。
    你可以用CFile::GetLength()来得到文件的长度
    CFile cf("test",CFile::typeBinary|CFile::modeRead );
    DWORD dwLen = cf.GetLength()
    void *p;
    p = (void *) new char[nLen]
    cf.ReadHuge( p, dwLen );
    这样你不就是一次性的读入整个文件到内存。当然这样也有点太.....如果文件太大就....
    也可用内存映射文件。
      

  3.   

    用api ::GetFileSize(...)
    得到文件大小,
    这样就可以根据文件大小判断是不是到了文件尾。