您的位置:首页 > 其它

还是有关二进制文件的问题

2005-05-26 03:03 549 查看
昨天问了一个关于二进制文件在CString中无法正常现实的问题,今天又遇到了一个类似的问题:

BYTE sz[10];
FILE* fp;
fp=fopen("322.exe", "wb");
while (pFile->ReadString((LPTSTR)sz, 2))
{
fwrite(sz, 1, 1, fp);
}
fclose(fp);

其中sz我用了BYTE类型,而且测试效果也是正确的。但是关键在于最后的文件中所有的“0D”都变成了“00”,其他的没有任何改变了。

也就说是文件长度是正确的,其中的"00"也都能正常的输出,只有ReadString过来的“0D”变成了“00”。

希望继续得到指点,谢谢。

回复人: Maxview(肥虫虫) (

) 信誉:100
2005-5-24 4:24:26 得分: 0
 
哦,忘了说了,ReadString()是CHttpFile中的函数,读取网上的文件,个人感觉好像是BinaryMode方面的问题……

Top
回复人: roscoe(草上飞) (

) 信誉:100
2005-5-24 5:26:21 得分: 33
 
ReadString 是文本读取方式,在实现中是在读的时候,将0x0A 0x0D换成0x0A,
写的时候将0x0A=>0x0A 0x0D.
读二进制时要以Binary方式打开,用Read, Write来读写才行

Top
回复人: chenbuaa(萧儿) (

) 信誉:99
2005-5-24 8:47:19 得分: 33
 
回车符号是特别要注意的在二进制文件读写中,打开和保存的时候都要用二进制方式打开

Top
回复人: vcmute(横秋) (

) 信誉:100
2005-5-24 9:02:29 得分: 33
 
用ReadString会先读长度,再读内容
读二进制文件,建议直接用Read

Top
回复人: yuanxiaojin(金子) (

) 信誉:100
2005-5-24 10:06:25 得分: 1
 
"pFile",啥啊?

Top
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  fp byte file 测试
相关文章推荐