if(x){
             char *PszFileName="Logon.txt";
             CStdioFile MyFile;
    CFileException  FileException;
       if(MyFile.Open(PszFileName,CFile::typeText|CFile::modeReadWrite),&FileException){
    CString StrBuf;
    int f=0;
while(MyFile.ReadString(StrBuf))
     f++;
    MyFile.SeekToBegin();
    int i=0;
        for(i;i<f;){
CString Temp1;
MyFile.ReadString(Temp1); 
int n=str.GetLength();
if(Temp1.Left(n)!=str)
i++;
else{
Temp1.Replace(str1,m);
MyFile.Close();
}
  }
}
else  
TRACE("Can't open file %s,error=%u\n",PszFileName,FileException.m_cause);
}为什么老出现访存错误,在另一个.cpp中运行就没错误,这是什么原因呢?求解,谢谢

解决方案 »

  1.   


    调试时,while(MyFile.ReadString(StrBuf))
    f++;
    这一步出现错误
      

  2.   

    好歹你也判断一下打开文件成功了没有啊。
    或者你把Logon.txt放到系统目录下,这样应该在任何一个cpp中都能正常了。
    你在另外一个cpp中正常,可能是因为你的Logon.txt在另外一个工程目录中,而不在失败的工程目录中。
      

  3.   

    错在这行:Temp1.Replace(str1,m);
    m在哪定义?
    while语句的错误提示是,循环体中有错误时,往往停止在第一行。
      

  4.   

    跟踪调试看看StrBuf中读到数据没?
      

  5.   

    为什么我换成别的txt文件就不出现错误,而用这一个就运行不了呢?求解!!!!