VScode配置C/C++环境(控制台中文乱码问题一步到位)

前言

C/C++的编译器用过很多,VS2010(第一个C/C++编译器,体验只能说一般,没有代码提示,记得是做第一次课设的时候,这玩意儿死活问题改不了,换成了VS2019,当时课设的问题就解决了,后面一段时间都在用这玩意),VS2019(总体还是不错,虽然对于sacnf这类会有安全检查,但好歹可以在新建项目的时候就去掉,but没过多久人生第一台笔记本压根不够用了,换了一台新笔记本,好家伙赶上更新,我手痒直接装了VS2022,结果我的感觉是不如VS2019,but人又比较懒,不想卸载重装)VS2022(安全检查不能在一开始去掉了,只能建了项目后再去属性里面改,不过其实这也没啥大问题。让我想换掉它的最直接原因就是,这玩意太吃内存了,感觉比idea还吃内存,运行起来体验感非常不佳。嗯….既然都提到了idea,它的兄弟Clion我也用了)Clion(UI、代码高量、提示这些毫无疑问是非常不错的,但是其实我也不用C/C++写工程,用点杀鸡用牛刀的感觉,而且这玩意CMake和中文乱码的配置问题也是在刚开始够你喝一壶了)而像devC++(实话实说除了比赛的时候用这玩意,其他时候,也是真心不想用,就像VS2010一样,体验很一般),所以最后的最后我选择了VScode,今天分享的也就是VScode的C/C++配置 。

配置准备

在进行配置前需要安装VScode和mingw作为基础的运行环境,

安装过程:(真的很简单,不做详细描述,实在不会再百度下其他文章吧)

官网下载安装包->选择安装路径->无脑一直下一步就行(对于mingw不要忘记配置环境变量)

进入正题

既然是想让大家少踩坑,这个配置教程肯定是越简单越好,所以接下来说的方法我觉得应该是最无脑的方法了,所以我也尽量不写什么废话。

在VScode的拓展市场安装拓展,就是下面这个

image-20230426220311265

在电脑上选择一个文件夹用来存放C/C++的项目代码,并建立.vscode文件夹,看清楚这里前面有个点的哈!!!!!!(如下图所示)

image-20230426220505473

在这个.vscode文件夹下 需要创建三个文件分别是c_cpp_properties.json,launch.json,tasks.json,图片上多余的那个请忽略。

image-20230426221111407

三个文件的代码分别如下:

c_cpp_properties.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
{
"configurations": [
{
"name": "windows-clang-x64",
"includePath": [
"${workspaceFolder}/**"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"windowsSdkVersion": "10.0.17763.0",
"compilerPath": " D:/Program/mingw64/bin/g++.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "windows-clang-x64"
}
],
"version": 4
}

launch.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true,
"MIMode": "gdb",
"miDebuggerPath": "D:\\Program\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "task g++"
},
{
"name": "C/C++ Runner: Debug Session",
"type": "cppdbg",
"request": "launch",
"args": [],
"stopAtEntry": false,
"externalConsole": true,
"cwd": "d:/vscodeprojects/CC++Projects",
"program": "d:/vscodeprojects/CC++Projects/build/Debug/outDebug",
"MIMode": "gdb",
"miDebuggerPath": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}

tasks.json:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "task g++",
"command": "D:\\Program\\mingw64\\bin\\g++.exe", /*修改成自己bin目录下的g++.exe,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-I",
"D:\\vscodeprojects\\CC++Projects", /*修改成自己放c/c++项目的文件夹,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
"-std=c++17",
"-fexec-charset=gbk",
],
"options": {
"cwd": "D:\\Program\\mingw64\\bin" /*修改成自己bin目录,这里的路径和电脑里复制的文件目录有一点不一样,这里是两个反斜杠\\*/
},
"problemMatcher":[
"$gcc"
],
"group": "build",

}
]
}

复制之后所需要做的也只有将三个文件中所出现的路径根据注释换成你自己电脑中的路径就得了,关于中文乱码的问题我也通过三个文件的配置给解决了,没有对VScode的本身或者电脑里的设置进行更改了。

成果

image-20230426221840213

可以看到这个方法我也没有去修改,VScode下面的编码方式,因为我自己电脑上的编译器貌似用的都是UTF-8,所也就不想去改了,另外前文也提到了VS用的比较久,所以更加喜欢用Windows的cmd控制台作为输出,不喜欢的话这个也是可以改的,true改false即可。

image-20230426222249735

欧克,到此问题就讲完了,希望对大家能够有所帮助

另外,前言部分关于各种编译器的使用体验仅代表个人观点,不喜勿喷哈!