C语言二进制数压缩成字母,c语言实现把‘0’和‘1’字符串转化为二进制压缩保存成二进制文件…

  • Post author:
  • Post category:其他


数据结构的huffman编码类似这个功能,网上找了下比较少,不太满足我的要求,于是就自己写了个。方法可能不是最好的,希望有心人能指点下,本人无敌菜鸟一个。

/*

功能:

writeBit(char *ch)把’0’和’1’组成的字符串,压缩存储二进制在bit.txt文件

bit.txt文件结构如下:开头4个字节保存了该文件存储的位数,后面的字节为存储内容

readBit()把二进制文件bit.txt恢复成字符串。

*/

#include

#include

#include

void writeBit(char *ch);

void readBit();

int main()

{

char ch[500];

scanf(“%s”, ch);

writeBit(ch);

readBit();

return 0;

}

void writeBit(char *ch)

{

int i;

int j;

char dest;

int count = 0; //计算字符串个数

int num; //存储字符需要的多少个字节

int left;//字符串剩余不足8位的个数

FILE *fp = NULL;

char *p = NULL;

if (NULL == (fp = fopen(“bit.txt”, “wb