状況によっては、出力ストリームにストリームを結合することによって自動的な同期を行うことができます。次のコードは、その方法を示したものです。この場合は、入力演算や出力演算があると、それらを処理する前に、結合されたストリームのバッファがフラッシュされます。
ofstream ostr("/tmp/fil");
ifstream istr("/tmp/fil");
ostream* old_tie = istr.tie(&ostr); //1
while (some_condition)
{ ostr << " some output ";
string s;
while (istr >> s) //2
// プロセス入力 ;
}
istr.tie(old_tie); //3
| //1 | 入力ストリーム istr は、出力ストリーム ostr に結合されます。tie() 関数は、先に結合した出力ストリームまでのポインタを返します。出力ストリームが結合されていない場合はゼロが返ります。 |
| //2 | 入力を実行する前に、結合した出力ストリームのバッファがフラッシュされ、ostr に対する以前の出力演算が外部ファイル /tmp/fil で利用できるようになります。 |
| //3 | 以前の結合が復元されます。 |
Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。
OEM リリース, 1998 年 6 月