【问题标题】:Redirect the stdout to buffer,not using >将标准输出重定向到缓冲区,而不是使用 >
【发布时间】:2011-08-16 14:38:37
【问题描述】:

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

我只能使用 printf!

【问题讨论】:

  • 你为什么反对用>将输出放到一个文件中?
  • 如果这是 C++ 为什么不使用 iostreams 呢?然后“捕获”输出只是使用stringstream的问题
  • 在不知道您实际使用什么来打印输出的情况下,很难判断使用什么来捕获输出。
  • 我必须从标准输出重定向到字符缓冲区

标签: c++ buffer printf stdout


【解决方案1】:

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

奇怪,C++,只有 printf,但不管怎样。

也可以在 C 中重定向标准输出。

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

涉及dupdup2

还有这个选项(Rerouting stdin and stdout from C)使用freopen

【讨论】:

  • 或者复制到内存中某个位置的自定义std::streambuf(想想std::ostringstream)。
猜你喜欢
  • 2014-02-18
  • 1970-01-01
  • 1970-01-01
  • 2010-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-06
相关资源
最近更新 更多