有下面的代码
CFile file;
file.Open(fileName,CFile::modeRead);
CArchive ar(&file,CArchive::load);
CString note;
ar>>m_note;
当运行到 ar>>m_note; 时就弹出“试图越过其尾端对一未命名文件进行读写”
怎么回事,郁闷!

解决方案 »

  1.   

    这个>>意思是读出一个CString 的大小的数据,存入note,你文件是里面有没有这么多数据呀?
      

  2.   

    首先我想问你 是不是 ar>>note;  ?   如果不是那么m_note是什么?其二,如果,如下做的话,是不会有问题!
    CFileDialog dg(1);
    if(dg.DoModal()==IDOK)
    {
       CString fileName=dg.GetPathName();
       CFile file;
       file.Open(fileName,CFile::modeRead);
       CArchive ar(&file,CArchive::load);
       CString note;
       ar>>note;
    }自己去试一试,祝你好运!
      

  3.   

    第三:我调试后发现,如果读取出来的文件没有数据的话,会跳出一个异常
    lResult = AfxGetThread()->ProcessWndProcException(e, &pThreadState->m_lastSentMsg);
    TRACE1("Warning: Uncaught exception in WindowProc (returning %ld).\n",lResult);
    DELETE_EXCEPTION(e);自己好好去调试一下吧。
      

  4.   

    经过测试,我发现当文件里的数据少到一定数量的时候,就会出现“试图越过其尾端对一未命名文件进行读写”的错误。whw???
      

  5.   

    不好意思,note就是m_note,写错了。
    whw即why,有点晕了,呵呵