boost zlib
-
hallo,
ich hab mich an diesem http://www.c-plusplus.net/forum/284365 beispiel orientiert und habe versucht, daten zu kompressieren.
leider funktioniert es nicht ganz, und zwar wird bei der dekompression und der im code markierten stelle folgende excepion geworfen:
boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::iostreams::zlib_error> > an Speicherposition 0x0021bce0..hier der quellcode:
#include <iostream> #include <string> #include <sstream> #include <random> #include <functional> #include <fstream> using namespace std; #include <boost\iostreams\filtering_stream.hpp> #include <boost/iostreams/copy.hpp> #include <boost/iostreams/filtering_streambuf.hpp> #include <boost\iostreams\filter\bzip2.hpp> #include <boost\iostreams\filter\gzip.hpp> #include <boost\iostreams\filter\zlib.hpp> namespace io = boost::iostreams; int main(int argc, char* argv[]) { std::uniform_int_distribution<int> distribution(0, 99); std::mt19937 engine; auto generator = std::bind(distribution, engine); string filename; stringstream ausgabe; stringstream sstream; for (int i = 0; i < 10000; ++i) { int it = generator(); ausgabe << it + " "; } filename = "zlib"; std::fstream file_zlib_write(filename,std::ios_base::out | std::ios_base::binary); io::filtering_ostream out; out.push(io::zlib_compressor()); out.push(file_zlib_write); // Write source out << ausgabe.str() << "\n"; file_zlib_write.close(); std::fstream file_zlib_read(filename, std::ios_base::in | std::ios_base::binary); if (file_zlib_read.good()) { io::filtering_istream in; in.push(io::zlib_decompressor()); in.push(file_zlib_read); std::stringstream ss; io::copy(in, ss); // bei diesem copy wird die exception geworfen stringstream out_data; string line; do { getline(ss, line); out_data << line; } while (!ss.eof()); } return 0; }vielleicht sieht jemand den fehler

mfg
gucky
-
Ich sehe, dass du Forward und Backslashes mischst.
-
hat sich erledigt, da die datei die ich geschrieben hab im erten teil des codes lehr war.