Skip to content

Latest commit

 

History

History
53 lines (42 loc) · 1.63 KB

rdbuf.md

File metadata and controls

53 lines (42 loc) · 1.63 KB

rdbuf

  • fstream[meta header]
  • std[meta namespace]
  • basic_ofstream[meta class]
  • function[meta id-type]
basic_filebuf<CharT, Traits>* rdbuf() const;
  • basic_filebuf[link ../basic_filebuf.md]

概要

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

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

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

戻り値

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

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

int main()
{
  std::ofstream 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;
}
  • std::filebuf[link ../basic_filebuf.md]
  • rdbuf()[color ff0000]
  • std::iostream[link ../../istream/basic_iostream.md]
  • seekg[link ../../istream/basic_istream/seekg.md]
  • std::ios_base[link ../../ios/ios_base.md]
  • beg[link ../../ios/ios_base/type-seekdir.md]

バージョン

言語

  • C++98

参照