从文件c ++中读取整数

时间:2014-09-29 16:03:04

标签: c++ file-io compression lzw

我实现了一个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?

1 个答案:

答案 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