我正在写一个霍夫曼算法,当我写文件头时,我存储了文件的长度,因为会有一些备用位,我需要知道在哪里停止。
当我写文件的长度时会发生这种情况:它写入8个字节,但是当我读取时,它只读取6个字节。
long totChar;
long size;
fprintf(outfile, "%ld", totChar);
fscanf(cmpfile, "%ld", &size);
我确信这有效,因为如果我添加例如:
fgetc(cmpfile); \\compressed file
fgetc(cmpfile);
然后我开始阅读,解压缩成功。
答案 0 :(得分:1)
您正在阅读和书写字符,而非二元文字。
例如,也许在您写数据时,您可以写入数字57,543,249(8位数)。但是当你读数据时,你会读到875,345(6位数)。