24

有没有办法在 Visual Studio 中捕获标准输出和标准错误?例如,当我使用

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

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

作弊解决方案可能会打电话

system("pause");

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

有人有什么想法吗?谢谢。我刚开始使用VS,我之前在Linux上。

4

3 回答 3

11

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

于 2012-04-19T23:48:00.143 回答
9

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

于 2012-04-19T23:44:21.033 回答
2

在不实际尝试重定向 stdin/err 流的情况下,您可以尝试一些替代方案:

  • 打开命令提示符窗口并 cd 到将在其中创建可执行文件的目录,然后从那里运行它。
  • 也许尝试使用类似 std::cin.get(); 或 std::cin.ignore(std::cin.rdbuf()->in_avail() + 1); 而不是系统(“暂停”)。
  • 通过OutputDebugString在 Visual Studio 调试器中显示输出
于 2012-04-19T23:38:19.973 回答