Вопрос
Я думал о "цепочке" пара cost iostreams вместе фильтруют ввод дважды. Я использую gzstreams для чтения сжатых файлов zlib, и я думал о кодировании потока, который читает из потока и выполняет преобразования кодирования. Возможно, передав открытый поток в качестве параметра конструктора ... Как вы думаете, это может быть лучше всего достигнуто?
Решение
Я не использовал это, но в бусте filtering_stream может помочь.
В качестве примера я нашел сообщение в списке рассылки с indent.hpp , который реализует выходной фильтр, который делает отступ выходы: р>
boost::iostreams::filtering_ostream out;
indent_filter::push(out,2);
out.push(std::cout);
И используйте это так:
out << "Hello Filter!\n"
<< indent_in
<< "this is\n"
<< "indented\n"
<< indent_out
<< "until here\n"
;
Что приведет к выводу:
Hello Filter!
this is
indented
until here
Не связан с StackOverflow