链接c ++流

时间:2009-05-04 06:08:00

标签: c++ iostream

我在考虑“链接”几个c ++ iostream,以便过滤两次输入。我正在使用gzstreams来读取zlib压缩文件,我正在考虑编写从流中读取并执行编码转换的流。也许通过传递一个打开的流作为构造函数参数......你怎么认为这可以做得最好?

1 个答案:

答案 0 :(得分:6)

我没有用过这个,但是提升filtering_stream可能会有所帮助。

作为一个例子,我发现a mailing list post带有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