命名空间
变体
操作

std::basic_ios<CharT,Traits>::rdbuf

来自 cppreference.com
< cpp‎ | io‎ | basic ios
 
 
 
 
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(); // save pointer to std::cout buffer
 
    std::cout.rdbuf(local.rdbuf()); // substitute internal std::cout buffer with
        // buffer of 'local' object
 
    // now std::cout work with 'local' buffer
    // you don't see this message
    std::cout << "some message";
 
    // go back to old buffer
    std::cout.rdbuf(cout_buff);
 
    // you will see this message
    std::cout << "back to default buffer\n";
 
    // print 'local' content
    std::cout << "local content: " << local.str() << "\n";
}

输出

back to default buffer
local content: some message

[编辑] 另请参阅

替换 rdbuf 而不清除其错误状态
(受保护的成员函数) [编辑]