状況によっては、出力ストリームにストリームを結合することによって自動的な同期を行うことができます。次のコードは、その方法を示したものです。この場合は、入力演算や出力演算があると、それらを処理する前に、結合されたストリームのバッファがフラッシュされます。
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 月