【问题标题】:zlib Compress without writing to diskzlib 压缩而不写入磁盘
【发布时间】:2016-05-26 20:24:20
【问题描述】:

我对 zLib 完全陌生,我对如何使用它感到困惑。 这就是我正在尝试使用 c++ 做的事情,但没有写入磁盘,所以使用缓冲区或其他东西:

获取存储在 std::vector 中的整数向量,将其全部打印到文本文件中,每个元素之间有空格。使用 zLib 对其进行压缩,然后将该压缩文件的大小(以字节为单位)保存到一个整数变量中,以后用于计算等。

感谢任何帮助,谢谢:)

【问题讨论】:

标签: c++ zlib


【解决方案1】:

zlib 具有 compressuncompress 函数,它们采用指向输入和输出缓冲区的指针(以及每个缓冲区的最大大小)。

在您的情况下,我将从 std::stringstream 开始将整数转换为文本形式(中间有空格)。然后使用该流的.str() 以字符串形式检索内容。使用字符串的.c_str() 检索指向它包含的数据的指针,然后您可以将其传递给compress

对于目标,它需要一个指向缓冲区的指针和一个指向 long int 的指针。它将压缩后的大小写入那个 long int,所以这就是您似乎想要保存以供以后计算之类的值。

【讨论】:

  • 非常感谢。 compress 函数是我一直在寻找的
猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多