C++显示打开文件的内容为什么是乱码

我建立了一个基于对话框的应用程序,在对话框中添加了两个编辑框,一个按钮,编辑框一个用来显示打开文件的路径,一个用来显示内容,显示路径的ID是:IDC_PATHNAME,另... 我建立了一个基于对话框的应用程序,在对话框中添加了两个编辑框,一个按钮,编辑框一个用来显示打开文件的路径,一个用来显示内容,显示路径的ID是:IDC_PATHNAME,另一个是IDC_TEXT,添加的打开按钮的事件是:
CString strPathname,strText;
CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY |OFN_OVERWRITEPROMPT,"All Files(*.TXT)|*.TXT||",AfxGetMainWnd());
if (dlg.DoModal()==IDOK)
{
strPathname=dlg.GetPathName();
CEdit*pPathName=(CEdit*)GetDlgItem(IDC_PATHNAME);
pPathName->SetWindowText(strPathname);
CFile file(strPathname,CFile::modeRead);
char read[10000];
for (int i=0;i<file.GetLength();i++)
{
strText+=read[i];
}
file.Read(read,10000);
file.Close();
CEdit* pText=(CEdit*)GetDlgItem(IDC_TEXT);
pText->SetWindowText(strText);
}

程序能够正常运行,能够显示路径,但是显示文本文件的时候,全是“烫”很奇怪为什么显示的都是这个字,还有我试着打开了一段英文,结果说是冲突了,最后想问下,如何设置编辑框的属性,让这个显示的内容自动换行,我这个显示的怎么是一行呢,各位高手,请帮忙吧,我是初学者,非常感谢各位赐教;
展开
 我来答
水晶扇
2012-08-08 · TA获得超过1536个赞
知道大有可为答主
回答量:837
采纳率:100%
帮助的人:1103万
展开全部
你很可爱啊。。
char read[10000];
for (int i=0;i<file.GetLength();i++)
{
strText+=read[i]; //先赋值,你这时还没读取呢!!!
}
file.Read(read,10000); // 现在补读没用啦。。
file.Close();
TragedyHome
2012-08-08 · TA获得超过2409个赞
知道小有建树答主
回答量:187
采纳率:100%
帮助的人:220万
展开全部
我以前也遇到过你这种类似的情况,但是我以前用的是C#写记事本,首先一个就是你需要把字体设置成为gb2312。然后我觉得你读取内容的时候也有问题C#和JAVA都有流,不知道C++有没有,一个一个字符串接收是不行的。而且还是数组。

另外显示为一行有可能是因为接收的时候把回车键也接收成为字符了,所以会显示为一行,要用转义字符换回来。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
qq766390485
2012-08-08
知道答主
回答量:27
采纳率:0%
帮助的人:12万
展开全部
路过!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式