- ios[meta header]
- std[meta namespace]
- basic_ios[meta class]
- function[meta id-type]
basic_streambuf<CharT, Traits>* rdbuf() const; // (1)
basic_streambuf<CharT, Traits>* rdbuf(basic_streambuf<CharT, Traits>* sb); // (2)
- basic_streambuf[link ../../streambuf/basic_streambuf.md]
ストリームバッファオブジェクトを取得・設定する。
- (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();
}
- std::ostringstream[link ../../sstream/basic_ostringstream.md]
- std::streambuf[link ../../streambuf/basic_streambuf.md]
- rdbuf[color ff0000]
- str()[link ../../sstream/basic_ostringstream/str.md]
1st message
3rd message
2nd message
- C++98