最近写一小程序,就是用CEdit类的编辑框读写文件,现在手头有一些数据文件,要再通过编辑框读写文件,出的问题是,如果是自己create的文件就能够读,也能够写,但如果是原来留下来的文件,不能读,也不能写,这两种文件都是txt的,忙了一天了,就是不知道问题出在哪?忘了说了,读留下来的文件出现的只是异常错误,而不是报的错,我初学vc,请多多指教。下面是我做的程序:
/////////////////////////////////////////////////////////////////////
CString pszFileName = "d:\\数据文件\\三点求圆.txt";
             ////////////////////////////////////////////////////
//////////上面三点求圆.txt是新建的能够运行,如果换成原来的就不行////////
CStdioFile myFile;
// CFileException fileException;
myFile.Open(pszFileName,CFile::modeCreate|CFile::modeReadWrite);
myFile.SeekToBegin();///移到文件头
char szHello[] = "Hello,\r\n world!"; myFile.Write( szHello,sizeof(szHello));  char buffer[10];
    myFile.Read(buffer,10); myFile.Close();
m_editResult.SetActiveWindow();
m_editResult.SetWindowText(buffer);
////////////////////////////////////////
请各位帮忙看看有什么问题,谢了

解决方案 »

  1.   

    三点求圆.txt,晕啊,以前我也做过三点求圆。没问题啊。 CString pszFileName = "d:\\三点求圆.txt";
                 ////////////////////////////////////////////////////
    //////////上面三点求圆.txt是新建的能够运行,如果换成原来的就不行////////
    CStdioFile myFile;
    //CFileException fileException;
    //myFile.Open(pszFileName,CFile::modeCreate|CFile::modeReadWrite);
    myFile.Open(pszFileName,CFile::modeReadWrite);
    myFile.SeekToBegin();///移到文件头
    char szHello[] = "Hello,\r\n world!"; myFile.Write( szHello,sizeof(szHello));  char buffer[100];
    memset( buffer, 0, 100 );
    myFile.Read(buffer,100); AfxMessageBox( buffer );
    myFile.Close();
      

  2.   

    看看open是否正确返回了,如果正确返回,看看read到的是什么东西。出现什么错误?
      

  3.   

    没有问题 // TODO: Add your control notification handler code here
    /////////////////////////////////////////////////////////////////////
    CString pszFileName = "d:\\ss.txt";
                 ////////////////////////////////////////////////////
    //////////上面三点求圆.txt是新建的能够运行,如果换成原来的就不行////////
    CStdioFile myFile;
    //CFileException fileException;
    //myFile.Open(pszFileName,CFile::modeCreate|CFile::modeReadWrite);
    myFile.Open(pszFileName,CFile::modeReadWrite);
    //myFile.SeekToBegin();///移到文件头
    //char szHello[] = "Hello,\r\n world!"; //myFile.Write( szHello,strlen(szHello));  char buffer[100];
    memset( buffer, 0, 100 );
    myFile.Read(buffer,100); AfxMessageBox( buffer );
    myFile.Close();
    //m_editResult.SetActiveWindow();
    //m_editResult.SetWindowText(buffer);
      

  4.   

    myFile.Write( szHello,sizeof(szHello));  char buffer[10];
        myFile.Read(buffer,10);这中间....
    应该把文件指针再回来开始的地方吧另外
    你把这句myFile.Open(pszFileName,CFile::modeCreate|CFile::modeReadWrite);
    换成
     if (!myFile.Open(pszFileName,CFile::modeCreate|CFile::modeReadWrite))
       {AfxMessageBox("打开文件失败");return;}
      

  5.   

    我应用了以上各位的建议,修改了几处错误,还是原来那样,自己写得东西能读(用CFile),但是原来硬盘上的.txt文件读不了,说是文件打开错误,如果是自己用记事本敲的文件,打开之后是乱码,这是为什么,请指教