将stdout重定向到缓冲区,而不是使用>

时间:2011-08-16 14:38:38

标签: c++ buffer printf stdout

我编写了printf的实现 - myPrintf,它打印到stdout。 我想验证它是否正常工作。为了检查打印输出的相关性,我想将它与我希望得到的char进行比较。如何编写代码以将stdout重定向到缓冲区,而不是使用>。

我只能使用printf!

1 个答案:

答案 0 :(得分:7)

您可以通过将couts设置为已打开的文件来重定向rdbuf()缓冲区。

奇怪,C ++,只有printf,但无论如何。

也可以在C中重定向stdout。

以下是一种方法:https://rydow.wordpress.com/2007/10/26/c-code-to-redirect-stdout/

涉及dupdup2

此选项(Rerouting stdin and stdout from C)也使用freopen