最終更新日時:
が更新

履歴 編集

function
<fstream>

std::basic_fstream::rdbuf

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

概要

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

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

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

戻り値

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

#include <istream> // std::iostream
#include <fstream>

int main()
{
  std::fstream 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: 基底クラスに存在する同名のメンバー関数。