VSCode - 调试 C++ 时无法将输入输入控制台

Posted

技术标签:

【中文标题】VSCode - 调试 C++ 时无法将输入输入控制台【英文标题】:VSCode - cannot enter input into console while debugging C++ 【发布时间】:2020-10-20 18:19:47 【问题描述】:

我知道这个问题之前被问过很多次,但没有一个解决方案对我有用。

我正在尝试在 Windows 上的 Visual Studio Code 上调试单个 C++ 文件。运行和调试工作正常。但是,当我尝试调试一个要求用户输入的程序时(例如使用cinscanf()),该进程开始并只是挂起。程序正在等待我输入内容,但是集成终端不允许我输入任何内容。

一种可能是在外部终端中运行调试,但是外部终端的问题是程序完成后它会立即关闭,所以我看不到结果。

launch.json 中是否有一个选项或可能有助于解决我的问题的扩展?

这是我的 launch.json 文件:

"name": "g++.exe - Générer et déboguer le fichier actif",
"type": "cppdbg",
"request": "launch",
"program": "$fileDirname\\$fileBasenameNoExtension.exe",
"args": [],
"stopAtEntry": false,
"cwd": "$workspaceFolder",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
"setupCommands": [
  
    "description": "Activer l'impression en mode Pretty pour gdb",
    "text": "-enable-pretty-printing",
    "ignoreFailures": true
  
],
"preLaunchTask": "C/C++: g++.exe build active file"

【问题讨论】:

你总是可以在最后添加一个断点或者添加一个睡眠函数来查看结果。并且在 VC 中应该有一个选项来启动控制台,该控制台在完成后不会立即关闭。至少 VS 有这样的选择。 使用调试终端 我不想在每次调试时都通过添加断点或最后休眠来与该工具作斗争。我希望有一个可以开箱即用的解决方案,就像它在我的 VSCode for Linux 或 Visual Studio IDE 上工作一样。 【参考方案1】:

重新安装 MinGW 似乎为我解决了这个问题。我使用了来自SourceForge 页面的安装程序。

我不知道最初的问题是什么,但现在可以在调试模式下输入终端。我怀疑问题出在我的 gdb 安装上。

【讨论】:

以上是关于VSCode - 调试 C++ 时无法将输入输入控制台的主要内容,如果未能解决你的问题,请参考以下文章

编译器2022-11-VSCode配置编译与调试C++程序(含输入输出重定向)

VSCode无法使用freopen文件输入输出

VSCode:C++ 调试器无法启动或正确附加

vscode java 无法输入参数。

经验分享vscode c++ 调试无法跳转问题解决教程

错误记录Ubuntu 下 VSCode 编译报错 ( 无法生成和调试,因为活动文件不是 C 或 C++ 源文件。终端进程启动失败(退出代码: -1)。终端将被任务重用,按任意键关闭。 )