2012-04-19 134 views
14

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

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

黑色窗口出现并消失。它太快了,我看不到它。 IDE中有一个输出部分,但它只允许我选择来自构建和其他内容的显示输出,但没有选择标准输出。

作弊的解决方案也许调用

system("pause"); 

,但它不健全的权利。我在选项中搜索,但我找不到一个项目。

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

+0

看看这里的答案:http://stackoverflow.com/questions/1343320/when-debugging-on-windows-where-does-stderr-go – 2012-04-19 23:43:33

回答

4

而不是使用“开始调试”命令,如果你想检查输出,使用“无需调试开始”。这通常是我如何处理它。命令提示符窗口将保持不动,直到您关闭它。如果发生崩溃或其他问题,您可以随时将Visual Studio重新附加到进程,或者直接使用“开始调试”运行它。

1

没有真正试图重定向标准输入/犯错流,也有一些替代品,你可以尝试:

  • 打开命令提示符窗口,cd到你的可执行 将被创建,然后目录从那里运行它。也许尝试使用类似std :: cin.get()的东西;或std :: cin.ignore(std :: cin.rdbuf() - > in_avail()+ 1);而不是系统(“暂停”)。通过OutputDebugString
+0

这两种方式听起来都不错,但无论如何感谢。这不是你的错。你们不觉得这个问题不方便吗?只是好奇。 – YankeeWhiskey 2012-04-19 23:43:28

+0

如我在答案中指出的那样将subsytem更改为控制台。 – Iceman 2012-04-19 23:48:34

+0

我知道有一个我错过了,Icemans评论它是正确的。 – thelazydeveloper 2012-04-19 23:48:40

4

围棋在Visual Studio调试器

  • 显示输出项目属性 - >链接器 - >系统 - >更改子系统控制台。

  • +0

    我改变了,但黑色的窗口不断弹出。我在哪里可以看到VS中的输出? – YankeeWhiskey 2012-04-19 23:48:10

    +3

    输出将在弹出的控制台中。如果您转到Debug - > Start Without Debugging,它不会消失。 – Iceman 2012-04-19 23:49:39

    相关问题