VSCode C++ 运行结束马上退出, 窗口一闪而过解决办法, 不修改代码


更新于2020-4-13,我已经不用这种方法了,现在VSCode和WSL深度整合,自己不用做太多配置,具体设置参考微软的教程:

1.Get Started with C++ and Windows Subsystem for Linux (WSL)  (目前我正在使用这种方式,推荐)

2.Get Started with C++ and Mingw-w64

3.Get Started with C++ and Clang/LLVM on macOS

4.Get Started with C++ and Microsoft C++ compiler (MSVC)

以下是原文

---------------------------------------------------------------------------------------------------------------------------

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“来查看所有可用的参数。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM