是否有可能以某種方式捕獲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. 將cout重定向到文件C++
- 4. 將std :: cout重定向到QTextEdit
- 5. 如何將std :: cout重定向到UITextView?
- 6. 重定向std :: cout
- 7. 捕獲直接重定向到/ dev/tty
- 8. 捕獲重定向位置
- 9. 將subprocess.check_call的stdout重定向到函數?
- 10. 將stdout和stderr重定向到函數
- 11. D將stdout重定向到函數
- 12. 將cout重定向到outfile時,是否可以對終端執行cout操作?
- 13. 如何在Linux中將cout重定向到控制檯?
- 14. 將printf和cout重定向到套接字
- 15. 將std :: cout重定向到linux上的syslog
- 16. 將cout重定向到使用winapi創建的新緩衝區
- 17. 將std :: cout重定向到新創建的控制檯
- 18. ofstream - 我可以將「cout」重定向到文件嗎?
- 19. 捕獲和格式化COUT
- 20. 如何重定向cout和cin?
- 21. std :: cout重定向的範圍
- 22. 重定向和時間戳std :: cout
- 23. ssis捕獲錯誤和重定向
- 24. MFC重定向/捕獲MESSAGE_MAP |的PreTranslateMessage?
- 25. 如何捕獲JavaScript的重定向?
- 26. Django的捕獲異常和重定向
- 27. HTTPClient - 捕獲所有重定向列表
- 28. python如何捕獲302重定向url
- 29. 捕獲「ReturnUrl」進行重定向
- 30. 捕獲/重定向404的(ASP.NET)
[Override C++ streams]可能的重複(http://stackoverflow.com/questions/7169136/override-c-streams) –