私は、ミニクラフトワールドファイルの一部からチャンクデータをロードする小さなクラスを作成しようとしています。私はzlibで圧縮されたchar配列にいくつかのデータを格納しており、それを解凍する必要があります。boost :: iostreams :: filtering_streambufの問題を使用してzlibデータを解凍する
私はこれを行うためにブースト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
データが含まれていることであるので、(stringstream) ssRawChunk
へ(char*) rawChunk
からデータを対処するとき、それは代わりに予想される長さ2154
の〜257で終了するにstringstreamなしfiltering_streambuf使用する方法はありますnullデータを許可するか、またはnullデータでstringstreamが終了しないようにする方法がありますか?
これを試してください:http://stackoverflow.com/questions/9557555/how-can-i-decompress-a-vector-of-deflated-data-with-boost –