- 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