将文件以位forms写入C中的文件

我在C中实现了霍夫曼算法。我已经获得了基本function,直到获得二进制代码字。 例如,abcd将是100011000或类似的东西。 现在的问题是如何在压缩文件中以二进制forms编写此代码。 我的意思是如果我正常写它每1和0将是一个字符,所以没有压缩。

我需要用它们的位forms写出1和0。 是这样可能在C.如果是这样如何?

收集位,直到有足够的位来填充一个字节然后写入它。

像这样的事情:

int current_bit = 0; unsigned char bit_buffer; FILE *f; void WriteBit (int bit) { if (bit) bit_buffer |= (1< 

一旦你完成了写入位,就必须刷新位缓冲区。 为此,只需写入位直到current_bit等于零:

 void Flush_Bits (void) { while (current_bit) WriteBit (0); }