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