basic_filebuf<CharT, Traits>* rdbuf() const;
概要
ストリームバッファオブジェクトを取得する。
basic_fstream
は内部にbasic_filebuf
オブジェクトを保有しているため、基底クラスbasic_ios
の同名のメンバ関数と以下の点で異なる。
- 値を取得するための関数のみ存在する。これに対して、
basic_ios::rdbuf
関数では、値の取得・設定でオーバーロードされている。 - 戻り値の型が
basic_filebuf
へのポインタに変更されている。
戻り値
*this
が内部で保有しているストリームバッファ(basic_filebuf
)オブジェクトへのポインタ。
例
#include <istream> // std::iostream用
#include <fstream>
int main()
{
std::fstream fs("foo");
std::filebuf* buf = fs.rdbuf();
std::iostream ios(buf); // fs.rdbufで得たオブジェクトを元に、別のiostreamオブジェクトを構築。
int i;
ios >> i;
ios.seekg(0, std::ios_base::beg);
ios << "ABC" << std::endl;
}
16
#include <istream> // std::iostream用
#include <fstream>
int main()
{
std::fstream fs("foo");
std::filebuf* buf = fs.rdbuf();
std::iostream ios(buf); // fs.rdbufで得たオブジェクトを元に、別のiostreamオブジェクトを構築。
int i;
ios >> i;
ios.seekg(0, std::ios_base::beg);
ios << "ABC" << std::endl;
}
バージョン
言語
- C++98
参照
basic_ios::rdbuf
: 基底クラスに存在する同名のメンバ関数。