Вопрос

Я думал о "цепочке" пара 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 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top