最終更新日時: 2026年07月22日 16時08分23秒 (JST)
rotarymars が更新

履歴 編集

function
<fstream>

# std::basic_ifstream::rdbuf

    basic_filebuf<CharT, Traits>* rdbuf() const;

## 概要

ストリームバッファオブジェクトを取得する。

`basic_ifstream`は内部に`basic_filebuf`オブジェクトを保有しているため、基底クラス`basic_ios`の同名のメンバ関数と以下の点で異なる。

- 値を取得するための関数のみ存在する。これに対して、`basic_ios::rdbuf`関数では、値の取得・設定でオーバーロードされている。
- 戻り値の型が`basic_filebuf`へのポインタに変更されている。

## 戻り値

- `*this`が内部で保有しているストリームバッファ（`basic_filebuf`）オブジェクトへのポインタ。

## 例

    #include <istream> // std::iostream用
    #include <fstream>
    #include <ostream> // std::endl用

    int main()
    {
      std::ifstream fs("foo");
      std::filebuf* buf = fs.rdbuf();

      std::iostream ios(buf); // fs.rdbufで得たオブジェクトを元に、別のiostreamオブジェクトを構築。
      int i;
      ios >> i;

      ios.seekg(0, std::ios_base::beg);
      ios << "ABC" << std::endl;
    }

## バージョン

### 言語

- C++98

## 参照

- `basic_ios::rdbuf`: 基底クラスに存在する同名のメンバ関数。