每个C++的I/O都有一块独立的缓冲区,只有当调用flush时才把其中的内容写入到文件或输出到屏幕,我们只需要把这块缓冲区的指针替换成别的指针就能实现重定向。
rdbuf函数有两种调用方法:
basic_streambuf<Elem,Traits> *rdbuf( ) const;
basic_streambuf<Elem,Traits> *rdbuf(
basic_streambuf<Elem, Traits> *_Sb
);
参数:
_Sb
A stream.