std::basic_ios<CharT,Traits>::rdbuf
来自cppreference.com
<tbody>
</tbody>
std::basic_streambuf<CharT, Traits>* rdbuf() const; |
(1) | |
std::basic_streambuf<CharT, Traits>* rdbuf( std::basic_streambuf<CharT, Traits>* sb ); |
(2) | |
管理关联的流缓冲。
1) 返回关联的流缓冲。若无关联流缓冲,则返回空指针。
2) 设置关联流缓冲为
sb。通过调用 clear() 清除错误状态。返回操作前的关联流缓冲。若无关联流缓冲,则返回空指针。参数
| sb | - | 要关联的流缓冲 |
返回值
关联的流缓冲,或若无关联流缓冲则为空指针。
异常
可能会抛出由实现定义的异常。
示例
运行此代码
#include <iostream>
#include <sstream>
int main()
{
std::ostringstream local;
auto cout_buff = std::cout.rdbuf(); // 保存指向 std::cout 缓冲的指针
std::cout.rdbuf(local.rdbuf()); // 以 'local' 对象的缓冲
// 替换内部的 std::cout 缓冲
// 现在 std::cout 以 'local' 缓冲工作
// 你看不到此消息
std::cout << "some message";
// 回到旧缓冲
std::cout.rdbuf(cout_buff);
// 你将看到此消息
std::cout << "back to default buffer\n";
// 打印 'local' 内容
std::cout << "local content: " << local.str() << "\n";
}
输出:
back to default buffer
local content: some message
参阅
替换 rdbuf 而不清除其错误状态 (受保护成员函数) |