Question
Je pensais à "chaîner" un couple de c ++ iostreams toghether pour filtrer l’entrée deux fois. J'utilise gzstreams pour lire les fichiers compressés zlib et je pensais à coder un flux qui lit un flux et effectue des conversions de codage. Peut-être en passant un flux ouvert en tant que paramètre constructeur ... Comment pensez-vous que ceci pourrait être mieux accompli?
La solution
Je ne l'ai pas utilisé, mais le boost filtering_stream peut vous aider.
A titre d'exemple, j'ai trouvé une publication sur une liste de diffusion . avec indent.hpp , qui implémente un filtre de sortie indenté sorties:
boost::iostreams::filtering_ostream out;
indent_filter::push(out,2);
out.push(std::cout);
Et utilisez-le comme suit:
out << "Hello Filter!\n"
<< indent_in
<< "this is\n"
<< "indented\n"
<< indent_out
<< "until here\n"
;
Ce qui produira une sortie:
Hello Filter!
this is
indented
until here
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow