在编译的时候没有错误,运行后,一点击按钮就出现Debug Assertion Failed!的错误,让我选择终止,重试还是忽略,请高手指教,帮忙看看哪里出错了,万分感谢
void CReadwriteDlg::OnButtonBegin() 
{
// TODO: Add your control notification handler code here
CStdioFile stdiofile;
stdiofile.Open("aa.txt",CStdioFile::modeRead); //创建要写入的文件
CStdioFile writefile;
writefile.Open("aa2.txt",CStdioFile::modeCreate|CStdioFile::modeWrite); //逐行读取字符串
CString szLine="";
CString szText=""; while(stdiofile.ReadString(szLine))
{
szText+=szLine;

}
/*

writefile.Seek(0,CFile::end);
writefile.WriteString(szText);

  //关闭文件
stdiofile.Close();
writefile.Close();
*/
}

解决方案 »

  1.   

    CString szLine=""; 
    CString szText=""; 
    会不会有错呢?
      

  2.   

    1.Open等操作要判断返回值
    2.CString szLine="";这种初始化最好以这种形式写CString szLine(_T(""));
    3.writefile.SeekToBegin()
      

  3.   

    SeekToBegin()是把当前的文件的指针指向文件头啊,用这个函数是什么作用呢?我是初学,还请多多指教
      

  4.   

    CString默认分配的是好像是15字节的空间,所以你要么自己在开辟空间,要么你就用字符数组了
      

  5.   

    我是要把aa.txt中的文件写入aa2.txt阿,直接写不可以吗?嘿嘿,还请再指教指教,谢谢大哥阿
      

  6.   

    哦,好了,终于可以了,再贴出来大家看看,有什么不专业的地方请大家再指正阿,呵呵
    确实是两个CString定义的有问题,所以就改了,而且开始时候,我对ReadString理解也不透彻
    不知道读到的东西放在哪里了,呵呵,这下好了,多谢各位阿
    CStdioFile stdiofile;
    if(!stdiofile.Open(m_strRead,CFile::modeRead|CFile::typeText))
    {
    AfxMessageBox("打开读文件失败!");
    } //创建要写入的文件
    CStdioFile writefile; if(!writefile.Open(m_strRead,CFile::modeCreate|CFile::modeWrite|CFile::typeText))
    {
    AfxMessageBox("打开写文件失败!");
    } //逐行读取字符串

    char Buffer[2048];
    memset(Buffer,'\0',2048*sizeof(char)); while(stdiofile.ReadString(Buffer,2048))
    {
     writefile.WriteString(Buffer);

    }


    writefile.Seek(0,CFile::begin);
      //关闭文件
    stdiofile.Close();
    writefile.Close();
      

  7.   

    路径的问题,调试的时候,程序的默认路径是项目的目录,单独执行的时候就是启动的目录,把aa.txt复制到程序目录下。
      

  8.   

    while(stdiofile.ReadString(szLine)) 

    szText+=szLine; } 
    这个循环里面,读出来就写进目标文件,不用szText+=szLine; 
    这样行吧
      

  9.   

    你的代码写得不太好,如果你要读的文件很大的话,你的保存内容的 szText,就会增大,越来越大
    这样写代码不好
      

  10.   

    恩,确实是,所以也就考虑到了用数组,这样的话,读一行,写一行,就避免了szText很大的问题了
      

  11.   


    最后还留一个writefile.Seek(0,CFile::begin); 什么意思啊?