Dekomprimieren mit Boost
-
Hallo,
Ich versuche mit Boost eine komprimierte Datei (mit bzip2) zu dekomprimieren
std::stringstream readData(const std::string path) { std::stringstream myStream; std::ifstream input(path,std::ios_base::in); boost::iostreams::filtering_streambuf<boost::iostreams::input>in; in.push(input); in.push(boost::iostreams::bzip2_decompressor()); boost::iostreams::copy(in,myStream); return myStream; }
Nach Testen anhand einer Beispieldatei erhalte ich folgenden Fehler:
terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injectorstd::logic_error >'
what(): chain completeBoost Version: 1.58 und C++17 wurde benutzt + gcc 8
-
Benutze einen Debugger und schau Dir die Zeile an, wo Du die Exception bekommst...
-
chain complete müsste heißen, dass du in dein filtering_streambuf falschrum das device raufpushed.
Die Exception wird geworfen, wenn "is_complete" wahr ist.
https://www.boost.org/doc/libs/1_67_0/libs/iostreams/doc/classes/filtering_stream.html#is_complete