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?

Était-ce utile?

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
scroll top