arseniivреализация не очень, сразу предупреждаю,
представьте, что на каком-то этапе у меня получилась обычная строчка с 1 и 0
(да, да "101010101010011", нулями в нужном количестве все дополнено)
в битовую я ее превращаю так:
Код:
void PackBitString(char *message, FILE *out)
{
   int i, j;
   char c;
   for(i = 0; i < (int)strlen(message); i += 8)
   {
        for(c = 0, j = 0; j < 8; ++j)
      {
         c *= 2;
         c += message[i + j] - '0';
      }
      fprintf(out, "%c", c);
   }
}
Считать обратно в строчку пытаюсь так:
Код:
void HuffmanDecode(FILE *in, FILE *out)
{
   int size = 8;
   char c, *s = (char *)malloc(size);
   while(!feof(in)) 
   {
      sPrintCharBits((char)fgetc(in), s);
      size += 8;
      s = (char *)realloc(s, size);
   }   
        s = (char *)realloc(s, size + 1);
   s[size] = 0;
   printf("\nGet: %s\n", s);
}