代码如下:在头文件申明:
                 CString  strTemp;
        实现函数                 CFile mFile;
        if(mFile.Open("c:\\1.txt",CFile::modeRead)==0)
        {
            return;
        }
        ASSERT(mFile.GetPosition() == 0);
        DWORD nFileSize = mFile.GetLength();
        
        CArchive ar(&mFile,CArchive::load);
             
         ar.Read((LPVOID)strTemp.GetBuffer(nFileSize), nFileSize/sizeof(TCHAR));    
                 ar.Close(); 
            mFile.Close();
strTemp里面就保留了输入的数据;但是现在我txt文件里面内容是1234,读出来后显示的内容是1234妄          ,多出来的字符是怎么回事?望指教。

解决方案 »

  1.   

    ar.Read((LPVOID)strTemp.GetBuffer(nFileSize), nFileSize/sizeof(TCHAR));    
    strTemp.RelaseBuffer();
    ar.Close(); 
    mFile.Close();
      

  2.   

    ar.Read((LPVOID)strTemp.GetBuffer(nFileSize), nFileSize/sizeof(TCHAR)); 
    改为:
    ar.Read((LPVOID)strTemp.GetBuffer(nFileSize), nFileSize/sizeof(char));试试
      

  3.   

    换成这个try again
     ar.Read((LPVOID)strTemp.GetBuffer(nFileSize+1), nFileSize/sizeof(char));
      

  4.   

    ar.Read((LPVOID)strTemp.GetBuffer(nFileSize + 1), nFileSize/sizeof(TCHAR));   应该是CString的构造问题.
      

  5.   

    ar.Read((LPVOID)strTemp.GetBuffer(nFileSize+1), nFileSize/sizeof(char));