VS Code调试代码时如何输入内容?scanf后调试卡住求解决方案
解决VS Code调试时scanf无法输入、进程卡住的问题
以下是几个直接可行的解决方案:
配置调试使用外部/集成终端
调试控制台(Debug Console)本身不支持标准输入,必须切换到终端环境:- 打开调试面板(Ctrl+Shift+D),点击顶部的齿轮图标打开
launch.json配置文件 - 修改
console字段为"externalTerminal"(弹出系统独立终端)或"integratedTerminal"(VS Code内置终端),如果是旧版本配置,可设置"externalConsole": true - 示例配置片段:
{ "version": "0.2.0", "configurations": [ { "name": "C/C++: gcc build and debug", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}.exe", "cwd": "${fileDirname}", "console": "externalTerminal", // 关键配置 "MIMode": "gdb", "preLaunchTask": "C/C++: gcc build active file" } ] }
保存后重新启动调试,终端会弹出并等待输入。
- 打开调试面板(Ctrl+Shift+D),点击顶部的齿轮图标打开
检查编译任务配置
打开tasks.json确认编译参数没有禁用标准输入,比如不要添加-nostdin这类限制输入的参数,确保编译命令是正常生成可执行文件:{ "tasks": [ { "label": "C/C++: gcc build active file", "command": "gcc", "args": ["-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe"], "options": {"cwd": "${fileDirname}"} } ] }确保终端获得输入焦点
如果使用VS Code内置的集成终端,调试启动后需要手动点击终端标签页,让它获得输入焦点再输入内容,避免焦点停留在调试控制台导致输入无效。排查外部拦截因素
部分杀毒软件或防火墙可能会拦截调试进程的终端交互,可临时关闭这类软件测试是否恢复正常。
内容的提问来源于stack exchange,提问作者SRAVAN KUMAR VEESAM
相关产品推荐
相关产品推荐

