std::basic_ios<CharT,Traits>::rdbuf
出自cppreference.com
std::basic_streambuf<CharT, Traits>* rdbuf() const; |
(1) | |
std::basic_streambuf<CharT, Traits>* rdbuf( std::basic_streambuf<CharT, Traits>* sb ); |
(2) | |
管理關聯的流緩衝。
1) 返回關聯的流緩衝。若無關聯流緩衝,則返回空指針。
目錄 |
[編輯] 參數
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 而不清除其錯誤狀態 (受保護成員函數) |