【发布时间】:2018-09-07 10:51:11
【问题描述】:
是否可以将stdout (NOT cout!) 重定向到流(ostream)(不重定向到文件!)
为什么?我正在我的应用程序中集成一个 python 解释器,并希望从 python 代码中捕获print() 调用。
我可以通过使用rdbuf() 以这种方式重定向cout,但是来自python 的printf() 或print() 没有被重定向,因为它转到stdout 而不是cout
【问题讨论】:
-
我怀疑我们能否正确回答这个问题,而不需要更多关于你如何处理事情的信息,也不需要看到一些代码。如果是您的解释器,那么您就是执行
print的人,因此您可以将文本发送到任何您喜欢的地方?? -
您也许可以使用freopen,但不确定。虽然 LRiO 是对的,但你应该负责为你的 python 解释器实现 printf
-
如何启动这个 python 脚本?我确信可以直接向 python 脚本提供自定义标准输出。
-
这在很大程度上是一个 A/B 问题。 stackoverflow.com/q/4307187/214671 中解释了您实际问题的解决方案;特别是第二个似乎做得很好。