当我在内部调试控制台中输入输入内容(例如数字)时,我收到消息“由于进程正在运行,因此无法执行此操作”。 (输出没有问题),但是当我在launch.json中切换外部控制台(Windows控制台)时,我没有遇到任何问题。
我已经阅读了一些有关VSC中调试的记录片(例如code.visualstudio.com/Docs/editor/debugging),但与此无关。我不应该在那里输入输入吗?另外,我的输出仅在调试控制台中显示,这也正常吗?我也无法通过终端输入我的输入。即使我没有调试就开始,情况也不会改变。如果我使用扩展名“ C / C ++ Compile Run”,则将创建普通的内部终端,并且可以与之交互。
我的launch.json配置
"name": "g++.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"internalConsoleOptions": "openOnSessionStart",
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++.exe build active file"
我的task.json:
"type": "shell",
"label": "g++.exe build active file",
"command": "C:\\MinGW\\bin\\g++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:\\MinGW\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
c_cpp_properties.json:
"name": "Win32",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": "C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.16.27023/bin/Hostx64/x64/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "msvc-x64"
答案 0 :(得分:0)
据我所知,调试控制台不支持从c ++程序的控制台读取输入。通过将 true 设置为 externalConsole 属性,可以使用外部终端。
Official document表示为Node.js编程将 控制台 属性配置为 integratedTerminal 。但是对于c ++程序却没有这样的规定。
有类似的open issue用于编程。可能是vscode团队在他们的积压订单中有这个问题。