最終更新日時: 2026年04月25日 09時09分04秒 (JST)
rotarymars が更新

履歴 編集

function
<ios>

# std::ios_base::sync_with_stdio

    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

## 関連項目

- 標準ストリームオブジェクト
  - `cin`
  - `cout`
  - `cerr`
  - `clog`
  - `wcin`
  - `wcout`
  - `wcerr`
  - `wclog`
- C 言語ライブラリの標準ストリームオブジェクト
  - `stdin`
  - `stdout`
  - `stderr`