VSCode 用来写C++挺方便的,但是有个问题,在运行结束以后会马上退出,看不到窗口内容。
网上很多方法都是在程序最后加getchar()语句,或者用system("pause"),来达到运行结束以后,再按任意键才会退出的效果。
但是我不想修改代码,也想达到这个效果,我们可以通过修改VSCode的运行命令,通过cmd的参数 "/C" 来实现。
比如VSCode的launch.json配置文件,加一个(Windows) Launch的配置,这个配置表示不启动调试,直接运行。配置内容如下:
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(Windows) Launch",
"type": "cppvsdbg",
"request": "launch",
"program": "cmd",
"args": [
"/C",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"&",
"pause"
],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole":true
},
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:/usr/TDM-GCC-64/bin/gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures":false
}
] }
]
}
注意args这个参数的json数组,每个参数必须写成一个独立的数组元素。如果把参数合在一起,比如把两个参数“&” 和 "pause" 写成一个"& pause",就不能运行。
这个方法主要是通过cmd的参数 "/C" 来实现,它的效果是:"执行字符串指定的命令然后终止"。此外,还可以通过 ”help cmd“来查看所有可用的参数。