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