- ios[meta header]
- function[meta id-type]
- std[meta namespace]
- ios_base[meta class]
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');
}
- sync_with_stdio[color ff0000]
- std::ios_base[link ../ios_base.md]
- std::putchar[link ../../cstdio/putchar.md.nolink]
1324