2012-03-19 12 views
2

私は、ミニクラフトワールドファイルの一部からチャンクデータをロードする小さなクラスを作成しようとしています。私は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); 

私の問題はrawChunknullデータが含まれていることであるので、(stringstream) ssRawChunk(char*) rawChunkからデータを対処するとき、それは代わりに予想される長さ2154

の〜257で終了するにstringstreamなしfiltering_streambuf使用する方法はありますnullデータを許可するか、またはnullデータでstringstreamが終了しないようにする方法がありますか?

+0

これを試してください:http://stackoverflow.com/questions/9557555/how-can-i-decompress-a-vector-of-deflated-data-with-boost –

答えて

0

ヌル文字を許可するstd::stringには、rawChunkを格納する必要があります。

+0

私は '文字列'を最初に使ってみました。それを 'stringstream'に入れますが、私の最初の例のように最初の' null'値で終了します。私は上のコメントで与えられた例を試していますが、問題を抱えています。 – GuitaringEgg

関連する問題