【发布时间】:2012-03-19 20:42:36
【问题描述】:
我正在尝试编写一个小类,该类将从我的世界文件的一部分加载块数据。我已经将一些数据存储在一个用 zlib 压缩的 char 数组中并且需要解压缩它。
我正在尝试使用 boost filtering_streambuf 来执行此操作。
char * rawChunk = new char[length - 1];
// Load chunk data
stringstream ssRawChunk(rawChunk);
boost::iostreams::filtering_istream in;
in.push(boost::iostreams::zlib_decompressor());
in.push(ssRawChunk);
stringstream ssOut;
boost::iostreams::copy(in, ssOut);
我的问题是rawChunk 包含null 数据,因此在将数据从(char*) rawChunk 处理到(stringstream) ssRawChunk 时,它会以~257 而不是预期的长度2154 终止。
有没有办法在没有 stringstream 的情况下使用 filtering_streambuf 来允许 null 数据,或者有没有办法阻止 stringstream 不终止 null 数据?
【问题讨论】:
标签: c++ boost zlib stringstream