首先我们要清楚,我们编写一个c语言程序并运行的过程。其实就是我们创建一个xxx.c文件,然后执行gcc xxx.c去生成一个xxx.exe文件,然后运行xxx.exe文件看到运行效果。
打开我们命令行查看它的属性会发现,它用的字符集是UTF-8
这个时候,如果我们的c语言程序的编码格式与cmd命令行的字符集不统一,那么就会输出乱码。
而vscode运行c程序本身也是这个原理,它帮我们打开一个shell,执行gcc生成exe,运行exe文件看到输出效果,但是vscode的编码格式默认是utf8,这样编码不统一,就输出乱码了。
我们可以手动修改编码格式为gbk
这个时候,如果代码里面变成乱码,就Ctrl撤销一下,然后就能正常输出中文了。
但是这种方式,我们每次创建一个c语言程序都需要像上面这样手动修改编码,一个更好的解决方式是再我们的vscode的设置里,选择settings.json,添加如下配置:
"[cpp]": {
"files.encoding": "gbk"
},
"[c]": {
"files.encoding": "gbk"
},
告诉vscode,当编写c程序和c++程序时,采用gbk编码。
这样新建出来的c文件,默认就是gbk编码了
我们再输出中文时就不会出现乱码了。
知道这些原理之后,我们编写其他语言的程序的时候出现乱码问题,也可以通过类似的方法解决。