是否有可能以某种方式捕获cout,以便每个标准输出(cout << "example";
)自动调用函数(myfunc("example");
)?将cout捕获/重定向到函数
回答
一种方法是创建一个类有适当的operator<<
重载并创建一个名为cout
全局实例,并using std::whatever
而不是using namespace std;
。然后很容易就可以从您的定制cout
到std::cout
来回切换。
虽然这只是一个解决方案(可能需要大量的工作,比您想花费的多),但我确信其他人知道更好的方法。
感谢您的想法,这可能是最好的方法,并有[在工作代码示例中“覆盖C++流”](http://stackoverflow.com/questions/7169136/override-c-streams#7169195)(谢谢@Tomalak Geret'kal的链接)。我会继续使用命名空间std,然后调用我的stringstream其他东西。 – basic6
@ basic6 ok,所以你会有'MyStream sout'之类的东西,并且所有东西都是'sout << stuff'。然后,当你想改回'cout'时,你可以改变'MyStream sout';'改成'ostream&sout = cout;'然后它会再次变成'cout'。如果它回答了你的问题,你会将此标记为答案吗? –
- 1. C++函数cout重定向到文件
- 2. 将std :: cout重定向到QTextEdit
- 3. 将std :: cout重定向到QTextEdit
- 4. 如何将std :: cout重定向到UITextView?
- 5. 将cout重定向到文件C++
- 6. 重定向std :: cout
- 7. 捕获直接重定向到/ dev/tty
- 8. 捕获重定向位置
- 9. 将stdout和stderr重定向到函数
- 10. 将subprocess.check_call的stdout重定向到函数?
- 11. 将cout重定向到outfile时,是否可以对终端执行cout操作?
- 12. 如何在Linux中将cout重定向到控制台?
- 13. 将cout重定向到使用winapi创建的新缓冲区
- 14. 将std :: cout重定向到新创建的控制台
- 15. std :: cout重定向的范围
- 16. HTTPClient - 捕获所有重定向列表
- 17. 捕获/重定向404的(ASP.NET)
- 18. python如何捕获302重定向url
- 19. Django的捕获异常和重定向
- 20. 将cout重定向到一个文件vs直接写入到linux文件中
- 21. 捕捉404并重定向到wwwroot
- 22. 将http重定向到https并将www重定向到非www
- 23. 重定向cout从c + + dll到C#中的文本框#
- 24. 重定向函数Php
- 25. 标题()函数重定向?
- 26. Linux函数重定向
- 27. 如何尝试并捕获重定向到错误页面?
- 28. 捕获点击事件没有重定向到应用程序
- 29. 将cout和stdout重定向到C++中的字符串进行单元测试
- 30. 将函数输出重定向到/ dev/null
[Override C++ streams]可能的重复(http://stackoverflow.com/questions/7169136/override-c-streams) –