最終更新日時:
が更新

履歴 編集

function
<ios>

std::basic_ios::rdbuf

basic_streambuf<CharT, Traits>* rdbuf() const;                                  // (1)

basic_streambuf<CharT, Traits>* rdbuf(basic_streambuf<CharT, Traits>* sb);      // (2)

概要

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

効果

  • (1) -
  • (2) *this に紐づくストリームバッファ(basic_streambuf)オブジェクトを引数 sb に設定する(rdbuf() == sb となる)。
    その後、clear() を実行する(結果として、sb == nullptr、かつ、(exceptions() & ios_base::badbit) != 0 の場合、ios_base::failure 例外が送出される)。

戻り値

  • (1) *this に紐づいているストリームバッファ(basic_streambuf)オブジェクトへのポインタ
  • (2) 引数 sb が設定される前の rdbuf()

#include <iostream>
#include <sstream>

int main()
{
  std::cout << "1st message" << std::endl;
  std::ostringstream sstr;
  std::streambuf* buf = std::cout.rdbuf(sstr.rdbuf());
  std::cout << "2nd message" << std::endl;
  std::cout.rdbuf(buf);
  std::cout << "3rd message" << std::endl;
  std::cout << sstr.str();
}

出力

1st message
3rd message
2nd message

バージョン

言語

  • C++98

参照