static bool sync_with_stdio(bool sync = true);
概要
標準ストリームオブジェクトと C 言語ライブラリの標準ストリーム(stdio)との同期状態を設定する。
効果
もし、本関数が呼び出される前に標準ストリームで入出力が行われていた場合、効果は実装依存である。
そうでなくて、もし引数 sync が false であれば、標準ストリームオブジェクトは C 言語ライブラリの標準ストリームと独立で動作してよい。
戻り値
本関数が呼び出される前の標準ストリームオブジェクトの同期状態。同期していたら true、していなければ false。
本関数を初めて呼び出した場合、true(つまり、初期状態は同期している)。
備考
標準ストリーム str が C 言語ライブラリの標準ストリーム f と同期している場合、
- 文字
cのストリームへの出力fputc(f, c);はstr.rdbuf()->sputc(c);と等価であり、 - 文字
cのストリームからの入力c = fgetc(f);はc = str.rdbuf()->sbumpc();と等価であり、 - 文字
cのストリームへの戻しungetc(c, f)はstr.rdbuf()->sputbackc(c);と等価である。
例
#include <iostream>
#include <cstdio>
int main()
{
std::ios_base::sync_with_stdio(false);
std::cout << '1';
std::putchar('2');
std::cout << '3';
std::putchar('4');
}
出力例
1324