我正在研究霍夫曼文件压缩项目。直到现在我知道它的工作原理是这样的:
file.txt(original) -> file.huf(encoded, compressed) -> file.txt(decoded)
我要做的就是打开txt文件,生成huffman代码,但是如何替换原文件的二进制代码文件中的那些代码呢。例如,如果 file.txt
存储 abc
那么它的 ASCII 编码文件将存储 01100001 01100010 01100011
和霍夫曼编码文件,即 file .huf
应该存储 10 11 0
然后这个文件应该使用生成的编码映射解码。
我的问题是如何在文件实现级别用 C++ 执行此操作,如何更改二进制文件?
最佳答案
我已经想通了,简单来说,为一个字母制作代码,然后为另一个字母制作代码并组合,重复此直到代码等于或超过 8 个包含 1 和 0 的字符,然后是这个 8 位数字序列被编码为某个字符并存储在文件中。 这样可以压缩文件。
关于c++ - 如何在 C++ 中自定义文本文件的编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29187639/