2 beinue beinue 于 2013.11.11 21:52 提问

文件按字读取存储引发的一点问题

问题比较复杂:
1.我需要将二进制文件提取出来,加密后存入另一文件
2.由于原始文件按字节(fgetc)提取加密后会变成很大的数(>255),因此不能用fputc来存加密后的数据,这就不可避免的用到putwc。但是putwc会使加密文件变大(由char变成了wchar),而我又想保持源文件大小。
3.我想到了按字提取fgetwc、按字存储fputwc,但是按字提取不能很好解决文件结尾的判定,如果源文件只有“abc”三个字符,那么按字提取只能提取出来“ab”和“65535”(结尾标志),跟“ab”两个字符提取结果一样。
怎么解决上述问题?

2个回答

ll_0520
ll_0520   2013.11.11 22:19

fgetc读2次代替fgetwc,奇数字节结尾特殊处理下

bdyz1016
bdyz1016   2013.11.12 21:43

fgetwc读之前先用fgetc读两次判断是否有'\n'或文件结束符,然后再把读位置退后两个字节

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!