Art*_*hur 17 mfc visual-studio visual-c++
我正在使用microsoft visual studio来做C++.我没有在IDE的输出控制台中看到std :: err和std :: out.有没有办法重定向他们?
Bra*_*don 19
你确实可以重定向std :: out和std :: err.只需在解决方案资源管理器中右键单击您的项目,然后选择Properties.然后选择Configuration Properties -> Debugging并将适当的参数放入Command Arguments字段中.例如,要将std :: err重定向到文件,我会输入2> ErrorLog.txt.
键入的内容Command Arguments只是在Visual Studio运行程序时作为命令行参数附加,就像您手动将它们输入控制台一样.因此,上面的示例只是告诉VisualStudio使用命令<programName>.exe 2> ErrorLog.txt而不是仅仅运行程序<programName>.exe.
小智 6
我知道这是一个老线程,但我不能不给出答案,因为我无法相信仍然没有真正的答案.你可以做的是将cout重定向到你选择的ostringstream.要做到这一点,从派生新类流缓冲,将数据流发送到OutputDebugString的(让我们调用这个类OutputDebugStream),并创建类的实例,myStream.现在打电话:
cout.rdbuf(&myStream)
Run Code Online (Sandbox Code Playgroud)
我以cout为例.同样的技术可以与cerr一起使用,只需调用即可
cerr.rdbuf(&myStream).
Run Code Online (Sandbox Code Playgroud)
如果你不使用cout,Stdout会有点困难.您可以在运行时使用重定向标准输出freopen(),但必须是文件.要使其重定向到调试屏幕有点困难.一种方法是使用fmemopen()它是否可用(它不是标准的)并写一个streambuf将这些数据输出到Debug屏幕.或者,您可以重定向到文件并编写流以作为输入打开并重定向到调试流.多一点工作,但我认为这是可能的.
| 归档时间: |
|
| 查看次数: |
19939 次 |
| 最近记录: |