Boost logo

Boost Users :

From: CPPer (coolcute_at_[hidden])
Date: 2007-04-21 00:36:34


eg <egoots <at> gmail.com> writes:

>
> The >> operators work on a character basis... they dont work well on
> binary data. Try initializing your string differently and see if you
> have better luck (similarly later on in your example).
>

this code works well...

#include <fstream>
#include <sstream>
#include <boost/iostreams/filtering_stream.hpp>
//#include <boost/iostreams/copy.hpp>
#include <boost/iostreams/filter/gzip.hpp>

namespace io = boost::iostreams;

int main()
{
        using namespace std;

        ifstream file("hello.gz", ios_base::in | ios_base::binary);
        io::filtering_istream in;
        in.push(io::gzip_decompressor());
        in.push(file);

        //std::ostringstream ostr;

        //io::copy (in, ostr);

        //std::string stir = ostr.str ();
        std::string stir;

        in >> stir;

        ofstream ofs("output.gz", ios_base::out | ios_base::binary);
        io::filtering_ostream out;
        out.push (io::gzip_compressor());
        out.push (ofs);

        out << stir;
}

but I just want to know how to do the same thing from memory?
Can anyone help me please?
Thanks!!!


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net