我实现了一个LZW压缩器,它借助哈希函数将字符串编码为整数。我将编码的字符串存储在文本文件中。现在我需要解压缩相同的代码。我很困惑如何在从文本文件中读取时区分两位数整数和一位数整数。
例如,我的字典是:
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?
答案 0 :(得分:0)
一些选项:
以二进制格式而非文本格式存储它们。这可能是读写的一个小挑战,但它可能值得学习。问题是如果您想使用文本编辑器可视化数字,但您可以找到一些可视化二进制文件的工具。假设每个整数2个字节(类型为short),您的示例将为hexa(不考虑endian):00 09 00 03 00 0a 00 07 00 09 00 00
按固定长度存储每个号码。示例:printf("%03d",number)将始终创建3位数字。您的示例是:009003010007009000
使用逗号或分号分隔符:9,3,10,7,9,0