首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

MFC读写文件的有关问题

2013-09-05 
MFC读写文件的问题?本帖最后由 VisualEleven 于 2013-08-29 14:35:39 编辑if(dlg.DoModal()IDOK){FilePa

MFC读写文件的问题?
本帖最后由 VisualEleven 于 2013-08-29 14:35:39 编辑        

 if(dlg.DoModal()==IDOK)
{
FilePathName = dlg.GetPathName();
fsTool.open(FilePathName,ios::in);

fsTool.seekg(0,ios::end);
int len = fsTool.tellg();
fsTool.seekg(ios::beg);
char* str = new char[len];
for(int j=0;j<len;j++)
{
*(str+j) = NULL;
}
fsTool.read(str,len);
int i=fsTool.gcount();
CFileDialog SaveDlg(false);
if(SaveDlg.DoModal() == IDOK)
{
FilePathName = SaveDlg.GetPathName();
fstream f(FilePathName,ios::out);
f.write(str,len);
f.close();
}
fsTool.close();
}

以上是我写的一段获取文件后读取然后再保存到文件里的操作,文件长度len能够获取到源文件的长度了,可是在read的时候,只获取到了前面一部分长度,后面大部分是空的..这个是为什么啊?
求指导.. mfc 读写文件
[解决办法]
首先fsTool.read()那个方法应该是有返回值的,你看看是多少,如果是len的话那我也没办法了。如果不是的话建议你尝试用循环来读写
[解决办法]
真没看出来哪里有问题
[解决办法]
判断read和write的返回值  看下成功读取或者写入多少数据....

for(int j=0;j<len;j++)
{
*(str+j) = NULL;
}

一句memset(str,0,len)不就够了...

热点排行