今天,我尝试从 VS2019 切换到 VS Code,同时继续使用 MSVC。这样,我大部分时间都会在一个轻量级且更简单的环境中进行开发,当我需要高级的东西(例如查看热路径)时,我将能够打开 VS2019 并完成工作。下面是我的 launch.json
配置
"name": "debug",
"type": "cppvsdbg",
"request": "launch",
"program": "${workspaceFolder}/build/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"preLaunchTask": "compile"
问题是调试时,在任何窗口中都看不到 std::cout
的输出。将 externalConsole
设置为 true
将打开一个新控制台,其中的结果是预期的。有没有办法在没有新控制台的情况下查看程序的输出?当我前段时间使用 Node 时,我记得 console.log()
在 DEBUG CONSOLE
窗口中可见
编辑 1
为了澄清,我添加了下面 4 个选项卡的屏幕截图。正如你所看到的,DEBUG CONSOLE
什么也没产生。最后一张图片是外部控制台。我发现大约 60 秒后,DEBUG CONSOLE
窗口显示正确的内容,然后我猜又卡住了大约 60 秒。程序应该以无限循环的方式显示行。最后一个屏幕截图是在修改 launch.json
编辑2
下面是 2 个示例。第一个按预期工作。第二个则不然。在我的初始程序中,执行了与第二个示例类似的操作
#include <iostream>
using namespace std;
int main() {
std::cout << "Hello world!\n";
}
#include <iostream>
#include <Windows.h>
using namespace std;
int main() {
while(true) {
Sleep(500);
std::cout << "Hello world!\n";
}
}
最佳答案
您可能查看了错误的选项卡。应该有“问题”、“输出”、“调试控制台”和“终端”选项卡。为什么按 F5 你就进入了“终端”。这是执行启动任务的 shell。然而,来自 std::cout 的程序输出会进入“调试输出”。
关于C++:调试时无法在 VS Code 中看到输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61869567/