运行C/C++程序时为何弹出Windows终端与VS Code终端?如何禁用?
解决VS Code运行C/C++程序时弹出Windows终端的问题
1. 修改调试配置(launch.json)
如果是通过调试功能启动程序,调整以下设置:
- 打开左侧调试面板,点击顶部的"创建launch.json文件"(若已有则直接打开)。
- 在配置项中找到
"externalConsole"字段,将其值改为false。示例配置片段:
{ "version": "0.2.0", "configurations": [ { "name": "C/C++: g++.exe 生成和调试活动文件", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${fileDirname}", "environment": [], "externalConsole": false, // 关键:关闭外部终端 "MIMode": "gdb", "miDebuggerPath": "C:\\mingw64\\bin\\gdb.exe", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "将反汇编风格设置为 Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ], "preLaunchTask": "C/C++: g++.exe 生成活动文件" } ] }
2. 修改运行任务配置(tasks.json)
如果是通过运行任务启动程序,调整任务的终端设置:
- 打开命令面板(Ctrl+Shift+P),输入
Tasks: Configure Task并选择对应的编译运行任务。 - 在tasks.json的任务配置中,添加或修改
presentation和console字段:
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: g++.exe 生成活动文件", "command": "C:\\mingw64\\bin\\g++.exe", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "编译器: C:\\mingw64\\bin\\g++.exe", "presentation": { "reveal": "never", // 不显示外部终端 "panel": "shared" }, "console": "integratedTerminal" // 指定使用集成终端 } ] }
3. 调整Code Runner插件设置(若使用该插件)
如果用Code Runner一键运行程序,修改以下设置:
- 打开设置面板(Ctrl+,),搜索
Code Runner: Run In Terminal并勾选该选项,确保程序在集成终端中运行。 - 搜索
Code Runner: Executor Map,找到C和C++的执行命令,移除可能调用外部终端的语句(比如start命令)。示例修改后:- C:
"cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt" - C++:
"cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
- C:
完成以上设置后,运行或调试C/C++程序时就只会使用VS Code的集成终端,不会再弹出Windows终端,输入也会直接在集成终端中生效。
内容的提问来源于stack exchange,提问作者user20400406
相关产品推荐
相关产品推荐

