在VS2008中的MFC,怎么把编辑框中的文字写入一个TXT

当点击一个按钮时,运行:UpdateData(true);CFilefile;CStringbu=m_a;if(!file.Open(L"E:\\aaa.txt",CFi... 当点击一个按钮时,运行:
UpdateData(true);
CFile file;
CString bu=m_a;
if(!file.Open(L"E:\\aaa.txt",CFile::modeCreate | CFile::modeWrite))return;
file.Write(bu,bu.GetLength());
file.Close();
UpdateData(false);
——————
各种百度来的结果……其中m_a是文本编辑框的变量,类型是CString。
文件倒是成功创建了,但是一打开那个aaa.TXT,里面是乱码囧- -
怎么回事?~希望高手能帮助解答一下,谢谢啦。
展开
 我来答
fdxuwei
推荐于2016-05-21 · TA获得超过271个赞
知道小有建树答主
回答量:207
采纳率:0%
帮助的人:267万
展开全部
这是因为CString是Unicode字符,而txt是Ansi字符,把CString直接写到txt中就会出现乱码,推荐用ini文件代替txt文件,ini文件比txt文件用起来更方便,而且有专门的函数对ini文件进行操作;你也可以用MultiByteToWideChar函数对CString转换后再写到txt文件中。
sandamailcn
2009-12-25 · TA获得超过743个赞
知道小有建树答主
回答量:541
采纳率:0%
帮助的人:0
展开全部
但我用下面的代码得到的文件不是乱码,而是可读的文字:
m_EditCtl1.GetWindowText( s ); //m_EditCtl1是一个编辑框
CFile file( L"d:\\temp\\aaab.txt",CFile::modeCreate | CFile::modeWrite );
file.Write( s,s.GetLength());
file.Close();

好像不能加CFile::typeText,CFile不支持text模式,总是binary

加上CFile::typeText试试
CFile::modeCreate | CFile::modeWrite | CFile::typeText
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
何处淬吴钩
2009-12-25 · TA获得超过5045个赞
知道大有可为答主
回答量:2947
采纳率:50%
帮助的人:2409万
展开全部
CFile只能以二进制形式进行读写。如果输入字符的话,最好还是用CStdioFile类的writestring方法。
输出中文的方法可参考我空间的文章http://hi.baidu.com/%BA%CE%B4%A6%B4%E3%CE%E2%B9%B3/blog/item/f5db0d25ada7de3bc8955916.html
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式