Frage

Ich dachte an ein paar c ++ „Chaining“ iostreams toghether Eingang zweimal zu filtern. Ich verwende gzstreams zlib komprimierte Dateien zu lesen, und ich dachte, einen Strom von Codierung, die aus einem Stream liest und Kodierungskonvertierungen. Vielleicht durch einen geöffneten Stream als Konstruktor Parameter übergeben ... Wie denken Sie dies am besten erreicht werden könnte?

War es hilfreich?

Lösung

Ich habe nicht verwendet, aber boost der filtering_stream helfen können.

Als Beispiel fand ich eine Mailing-Liste Post mit indent.hpp , die einen Ausgangsfilter, der Einzüge implementiert Ausgänge:

boost::iostreams::filtering_ostream out; 
indent_filter::push(out,2); 
out.push(std::cout); 
  

Und verwenden Sie es wie folgt:

out << "Hello Filter!\n" 
    << indent_in 
    << "this is\n" 
    << "indented\n" 
    << indent_out 
    << "until here\n" 
    ; 
  

Welche in der Ausgabe führen:

Hello Filter! 
  this is 
  indented 
until here 
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top