注册 登录
编程论坛 VC++/MFC

CFile 获取文件内容问题

E_ver 发布于 2013-03-18 09:37, 657 次点击
程序代码:
CFile file;
    file.Open(strFilePath,CFile::modeRead);
    int Flen=file.GetLength();
    char *lpbuf=new char[Flen];;
    file.Read(lpbuf,Flen);
    UpdateData(FALSE);


lpbuf初始化结果为    lpbuf    0x0039c908 "屯屯??????铪铪铪铪"

txt文件的内容为“abcd”,读取结果为    lpbuf    0x0039c908 "abcd??????铪铪铪铪"   
即使加上“strcpy(lpbuf,"")”仍无效;
换成数组可用
    char lpbuf[100]={};
但程序需要动态分配内存,求指教。。。
4 回复
#2
E_ver2013-03-18 10:23
程序代码:
CFile file;
    file.Open(strFilePath,CFile::modeRead);
    int Flen=file.GetLength();
    char *lpbuf=new char[Flen+1];
    lpbuf[Flen]='\0';
    file.Read(lpbuf,Flen);
    UpdateData(FALSE);

加上lpbuf[Flen]='\0'即可,原因是GetLength()是不获取‘\0’的....
#3
yuccn2013-03-18 16:35
new出来的东西 memset 一下
 记得初始化
#4
changyuanjia2013-03-28 17:13
回复 2楼 E_ver
我想知道应该在哪里加上那句话,谢谢。
#5
E_ver2013-04-08 15:59
回复 4楼 changyuanjia
就是new 的下一句就可以。。
1