vscode写c++遇到窗口一闪而过+中文乱码咋办

本人没使用系统cmd窗口,而是使用了vscode内置终端,目的是为了之后输出中文的时候不乱码(vscode是utf-8,cmd是gbk,干脆全部使用vscode,不使用系统cmd作为输出窗口)

附上配置文件:

launch.json

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\build\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry": false, //改为true时程序暂停在程序入口位置,即main处打上断点
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false, //true:cmd窗口; false:Vscode的内置终端输出
            "MIMode": "gdb",
            "miDebuggerPath": "C:\\Program Files\\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 生成活动文件" //调试开始前执行需要执行的任务,调试前要编译构建 名称要和tasks.json的label保持一致
        }
    ]
}

task.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 生成活动文件",
            "command": "C:\\Program Files\\mingw64\\bin\\g++.exe", //本地编译器路径
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-std=c++11",
                "-o",
                "${fileDirname}\\build\\${fileBasenameNoExtension}.exe" //修改.exe文件生成位置
                // "-fexec-charset=GBK" //如果不用cmd输出 就注释掉
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "调试器生成的任务。"
        }
    ],
    "version": "2.0.0"
}

注意不要给文件夹或者文件起中文名字,否则可能会报错,运行不了

img

注意按这个配置的话,第一次点击运行的话,没出现结果,但是点第二次就出现结果了,也不知道咋回事

遇到问题的话,推荐看下这篇文章 Vscode 重定向 .exe 文件生成位置

里面有详细的关于launch.jsontask.json的注释

无意中发现能让起中文名字的c++文件运行的方法,下个扩展Code Runner就可以了,不过缺点应该是没有调试功能

img

然后打开settings.json

如下点击扩展设置

img

改下生成可执行文件的位置

// "cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
"cpp": "cd $dir && g++ $fileName -o $workspaceRoot\\build\\$fileNameWithoutExt && $workspaceRoot\\build\\$fileNameWithoutExt",

注释的是原来就有的,要把这条语句改成注释下面的语句,然后保存。

自己在目录中创建一个build文件夹,然后以后生成的可执行文件都会在
build文件夹里面了。

img

img

后面发现如果用 Code Runner 来运行python文件的话,输出中文会乱码,怎么解决呢?

可以看下这篇博客解决VS Code使用code runner开发Python乱码问题

posted @   hisun9  阅读(26)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示