【发布时间】:2018-07-12 08:13:51
【问题描述】:
我正在创建一个应用程序,我必须在其中存储大量字符串数据 - 以块的形式接收。 我正在尝试以压缩格式保存它。但是,如果我使用 zlib 压缩字符串并类似地附加更多压缩块,则解压缩失败。
std::string allinput = "AAAA";
std::string cstr1 = compress_string( allinput );
std::string allinput2 = "BBBB";
std::string cstr2 = compress_string( allinput2 );
std::string cstr = cstr1 + cstr2;
std::string out = decompress_string( cstr );
std::cout << "DECOMP:" << out << "\n" ;
使用上面的代码,我得到以下输出:
AAAA
有什么方法可以解压附加的压缩字符串块
PS:compress_string和decompress_string的实现可以从C++ Code Snippet - Compressing STL Strings with zlib找到
【问题讨论】:
-
这个问题太笼统了,甚至可以用“是”、“否”和“也许”来回答。请更具体。上下文是什么?什么是压缩方案?到目前为止,您尝试过什么?
-
@Jodocus 编辑了问题以添加更多详细信息
-
我撤回了我的投票。不过请注意,我没有投反对票。
-
decompress_string 必须在看到 Z_STREAM_END stackoverflow.com/a/17053154之后重新启动解析器
-
解压中,你想以某种方式检索压缩期间使用的块边界吗?
标签: c++ algorithm compression zlib chunks