在编译的时候没有错误,运行后,一点击按钮就出现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();
*/
}
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();
*/
}
CString szText="";
会不会有错呢?
2.CString szLine="";这种初始化最好以这种形式写CString szLine(_T(""));
3.writefile.SeekToBegin()
确实是两个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();
{
szText+=szLine; }
这个循环里面,读出来就写进目标文件,不用szText+=szLine;
这样行吧
这样写代码不好
最后还留一个writefile.Seek(0,CFile::begin); 什么意思啊?