关于读写文件长度不一致,请高手解惑! 最近编一个程序,一次读file1文件8字节,变换为某个数,将此数按8字节写入另一文件file2。读file2,变为原数据,写回file1。file1文件末尾会多几个0。如果是Word或Ecel,打开就会报错误。怎么解决? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用二进制方式。好比说,以一次读写2字节为例:__int16 buf;file1.Read(&buf, 2);buf = buf ^ 0xabcd;file2.Write(&buf, 2);//以上为加密__int16 buf;file2.Read(&buf, 2);buf = buf ^ 0xabcd;file1.Write(&buf, 2);//以上为解密 txt文件如为3字节的,解出来为4字节,二进制查看器中看到后面多了个00如为偶字节的,正常。考虑与文件长度奇、偶有关?难道要先读完一遍文件,将最后一次读到的不足2字节的数量写入文件中。解密时先读这个数,决定最后一次写入时是否去掉前面的00? 文本型文件可以直接打开。WORD、Excel有时报错,有时可直接打开。图片格式可直接打开。 int file1_len = file1.GetLength();if (file1_len % 8)file2.Write(&file1_len, 1);//加密文件头部先写入剩余字节继续读剩余数据进行加密解密时int file2_len;file2.Read(&file2_len, 1);...解密完写数据之前if (file2_len) file1.Write(&data, file2_len); 把程序写成服务有什么优点? VC++如何获得条码扫描器的消息 帮忙搞个随机16进制的DWORD值对应ASCII码的字符,数字 谁能跟我说明白,到底该怎么更换软件界面,新手救援中.. 线程响应函数中可以调用GetDlgItemText()函数吗?怎么老是出错。。 多线程编程的问题,请大家帮忙!! stdafx.h 一般存放在哪里? 计算机唯一标识符 vc/mfc中如何使用控件数组,如何获得数组入口? 急问:关于USB摄像头的理论问题 大家都玩趣味编程吗,聊聊都用了多少时间 [Help]如何播放MJPEG网络视频流
__int16 buf;file1.Read(&buf, 2);
buf = buf ^ 0xabcd;
file2.Write(&buf, 2);
//以上为加密__int16 buf;file2.Read(&buf, 2);
buf = buf ^ 0xabcd;
file1.Write(&buf, 2);
//以上为解密
file2.Write(&file1_len, 1);//加密文件头部先写入剩余字节
继续读剩余数据进行加密解密时
int file2_len;
file2.Read(&file2_len, 1);
...
解密完写数据之前
if (file2_len)
file1.Write(&data, file2_len);