入力を2回フィルタリングするために、いくつかのc++iostreamを一緒に「チェーン」することを考えていました。私はgzstreamsを使用してzlib圧縮ファイルを読み取り、ストリームから読み取り、エンコード変換を実行するストリームをコーディングすることを考えていました。おそらく、開いたストリームをコンストラクターパラメーターとして渡すことによって...これを最もよく達成できると思いますか?
2410 次
1 に答える
6
私はこれを使用していませんが、boost の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
于 2009-05-04T06:36:48.650 に答える