CFile 读取乱码

CFilefile;file.Open("1.txt",CFile::modeRead);char*pBuf;DWORDlen=file.GetLength();pBuf... CFile file;
file.Open("1.txt",CFile::modeRead);
char *pBuf;
DWORD len=file.GetLength();
pBuf=new char[len+1];
memset(pBuf,0,sizeof(pBuf));
file.Read(pBuf,sizeof(pBuf));
file.Close();
MessageBox(pBuf);
delete pBuf;
这段MFC代码为什么读取出来的是乱码,比如说1.txt中的文本是www.baidu.com
展开
 我来答
阔海的账户
2012-04-11 · TA获得超过214个赞
知道小有建树答主
回答量:161
采纳率:0%
帮助的人:238万
展开全部
sizeof(pBuf)=4,就是pBuf这个变量的size,而不是new的整个缓冲区的size;所以系统只初始化了pBuf指向的缓冲区的前4个字节,又读出了4个字节,4个字节以后的缓冲区是随机的乱码,所以输出就是乱码了。建议做如下修改:
pBuf=new char[len+1];
memset(pBuf,0,len+1);
file.Read(pBuf,len);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式