有没有办法在Visual Studio中捕获stderr和stdout?

时间:2012-04-19 23:32:52

标签: c++ visual-studio-2010 command-line ide stdout

有没有办法在Visual Studio中捕获stdout和stderr?例如,当我使用

cout <<"Hello world!"<< endl;

出现黑色窗口并消失。它太快了,我看不到它。 IDE中有一个输出部分,但它只允许我从构建中选择显示输出,而不选择stdout。

作弊解决方案可能正在致电

system("pause");

但听起来不对。我在选项中搜索但我找不到项目。

任何人都有任何想法?谢谢。我刚刚开始使用VS而且我之前在Linux上。

3 个答案:

答案 0 :(得分:6)

如果要检查输出,请使用“Start Without Debugging”,而不是使用“Start Debugging”命令。这通常是我处理它的方式。命令提示符窗口将保持打开状态,直到您关闭它。如果发生崩溃或其他事情,您可以随时将Visual Studio重新附加到该过程,或者只需使用“开始调试”运行它。

答案 1 :(得分:5)

转到项目属性 - &gt;链接器 - &gt;系统 - &gt;将子系统更改为控制台。

答案 2 :(得分:1)

如果没有实际尝试重定向stdin / err流,可以尝试一些替代方法:

  • 打开命令提示符窗口并cd到您的可执行文件目录 将在那里创建然后从那里运行。
  • 也许尝试使用像std :: cin.get();或者std :: cin.ignore(std :: cin.rdbuf() - &gt; in_avail()+ 1);而不是系统(“暂停”)。
  • 通过OutputDebugString
  • 在visual studio调试器中显示输出