0
我实现了一个LZW压缩器,它使用散列函数将字符串编码为整数。我将编码的字符串存储在一个文本文件中。现在我需要解压缩相同的代码。我很困惑如何在从文本文件中读取时区分两位数的整数和单个数字的整数。从文件中读取整数C++
例如,我的字典是:
0 c
1 bba
3 aa
5 ac
7 bb
8 aab
9 a
10 b
等。
现在,假设我将字符串'aaabbbac'编码为“9 3 10 7 9 0”,该字符串以9310790的形式存储在文本文件中。如何在读取文件时区分0,1和10?
如果它们存储完全一样(不与每个二进制作为一个字节),那么你不能区分分隔符。 – matsjoyce 2014-09-29 16:04:45
为什么不把它们存储为实际整数(不是一个表示整数的字符串) – Borgleader 2014-09-29 16:04:49
通常在压缩程序中,您不写入文本,也不写入二进制字节,而是编写一个*位流*(您的代码边界可以不落在字节边界上)。下一个要读取的值的位宽由解码器状态决定。 – 2014-09-29 16:18:53