【问题标题】:Make output of console application directly into Visual Studio and not external Windows console将控制台应用程序的输出直接输出到 Visual Studio 而不是外部 Windows 控制台
【发布时间】:2020-04-24 13:42:41
【问题描述】:

作为 Visual Studio Community (2017) 的新用户,我意外地发现我的 C++ 控制台应用程序在 IDE 外部的控制台中运行。

所以我想知道如何让我的程序直接在 IDE 中运行,就像 Eclipse、VSCODE、IntelliJi 等一样......

我已经尝试过关于这个主题的建议解决方案:How do you run a console application in the Visual Studio output window, instead of opening a new command prompt?,但它不适用于我的 VSC (2017) 版本。

我想知道我的版本是否可以,如果可以,必须对 IDE 的配置进行哪些更改。

How it works now

How I would like to be

【问题讨论】:

  • 我很惊讶地发现我的 C++ 控制台应用程序在 IDE 外部的控制台中运行自从 Visual Studio 中一直这样至少在 1990 年代。
  • 没有实现允许它。因此,您必须向该 Visual Studio 的开发人员提出更改请求……它可能是在该程序的某个地方编写的。
  • 根据定义,控制台应用程序在系统控制台中运行。我不知道为什么这会令人惊讶。 VS 是一个专为编写和调试代码而设计的 IDE。

标签: c++ windows visual-studio visual-studio-2017 ide


【解决方案1】:

在托管代码中,您可以尝试使用System::Diagnostics::Debug::Write。在非托管代码中,您可以尝试使用OutputDebugString。在这两种情况下,文本都将转到“输出”窗口而不是“立即”窗口。如果你想要它在即时窗口中,你可以在 VS 里面去工具 -> 选项 -> 调试 -> 常规并选中“将所有输出窗口文本重定向到即时窗口”选项。

使用Immediate window 调试和评估表达式、执行语句和打印变量值。而且我们无法在即时窗口中运行控制台应用程序。

就我而言,我们不能将the system console 等同于Immediate window。并且控制台应用程序应该在系统控制台中运行。

【讨论】:

    【解决方案2】:

    如果您在 IDE 的调试器中运行程序,则可以使用 OutputDebugString 而不是写入标准输出(即 std::cout)。这样,程序的输出就会出现在 IDE 的输出窗口中。

    但是,此功能仅用于调试目的,不适合正常使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-12
      • 2014-09-08
      • 1970-01-01
      • 1970-01-01
      • 2014-05-23
      相关资源
      最近更新 更多