问题描述
嗨,我用 C 语言做了一个简单的 LZW 压缩器,但我找不到任何关于如何将压缩值写入文件的信息。
例如我压缩了一个txt文件,它是“banana bandana”,输出代码是:
98 97 110 257 97 32 256 110 100 259
我应该如何将其写入新文件?我需要用C重新读取并解压。
解决方法
我想是的,您应该将压缩数据写入另一个文件,例如“banana.lzx”。
这里是如何将压缩数据写入文件:
#include <stdlib.h>
int compressed_data[10] = {98,97,110,257,32,256,100,259};
FILE * fp = fopen("banana.lzx","w");
fwrite(compressed_data,sizeof(compressed_data[0]),sizeof(compressed_data),fp);
fclose(fp);
这里是如何从文件中读取压缩数据:
#include <stdlib.h>
int compressed_data[10] = {0};
FILE * fp = fopen("banana.lzx","r");
fread(compressed_data,fp);
fclose(fp);
/* compressed_data is retrieved,and can now be decompressed */
备注:
我对 LZW 压缩一无所知,但压缩数据不应该是一组字节吗?如果是这样,为什么您得到的值高于 255
(参见 257
、256
和 259
)?