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