mfc中,把Editcontrol中的内容写到txt中

我写的程序,就差最后一点问题,就是,写入txt的内容永远只是三行,不知道怎么解决http://yun.baidu.com/share/link?shareid=54637... 我写的程序,就差最后一点问题,就是,写入txt的内容永远只是三行,不知道怎么解决
http://yun.baidu.com/share/link?shareid=546375866&uk=3526627121
大神能不能帮我改下,就是文件导出那个按钮的响应函数,在此谢过
展开
 我来答
bhtzu
2015-01-17 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4236万
展开全部
void CTestProgramDlg::WriteTxT()
{
 CString filename("四元式.txt");

CStdioFile myFile;

    CFileException fileException;
if(myFile.Open(filename,CFile::typeText|CFile::modeCreate|CFile::modeReadWrite),&fileException)

{
CString str1;
m_edit2.GetWindowText(str1);
    myFile.WriteString(str1);
 

}

else

{

TRACE("Can't open file %s,error=%u\n",filename,fileException.m_cause);
}

myFile.Close();

}

是这个出问题么?

因为VS版本不一致,我没法打开你的工程进行调试,只能分析一下。

这里获取和写入本身是没有什么问题的,如果缺少内容,应该是edit2里面有特殊结束标记或者特殊字符造成的流文件无法一次写入全部内容。

建议解决办法:

  1. 设置断点,调试str1获取是否完整。也可以在WriteString之前,AfxMessageBox弹出看看str1内容。

  2. 使用CFile::Write方法保存文件试试。

  3. 也可能是typeText造成的不可打印字符问题,但这个可能不是很大。

追问
中断的地方时汉字,是不是,这个原因啊。。。
您能不能帮我写一个CFile的程序啊,我真的是我太会,文件操作都是直接移植过来用的。。。。Editcontrol中的内容在一个string类的名叫templine的变量中
追答
    CStdioFile myFile;
    if(myFile.Open(_T("四元式.txt"),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite))
{
    CString str1;
    m_edit2.GetWindowText(str1);
    //myFile.SeekToEnd();如果需要追加,配合modeNoTruncate
    myFile.Write(str1.GetBuffer(0),len*sizeof(TCHAR));
    myFile.Close();
}

另外,写文件,也涉及字符编码问题,UNICODE方式写文本文件有编码问题,可能显示中文会乱码。

来自:求助得到的回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式