windows中使用cin输入中文无法显示的问题。

windows中使用cin输入中文无法显示的问题。

我在学习C++的时候,使用的是VScode编写的程序。

在vscode中,默认的字符编码为UTF-8,所以GCC编译也默认为UTF-8,由于win终端默认的是GBK编码,导致总是乱码。后来我在程序中加入了一段代码,启用该程序时,将该程序终端改为UTF-8;代码如下;

1 system("chcp 65001");

刚开始测试程序时没有问题,直到我输入中文字符的时候,发现终端不显示(有时候直接显示乱码)。

我就尝试把win系统的默认编码全部改为UTF-8,但是事与愿违,使用cin获取字符时,中文字符还是不显示。但是我把编码格式全换成GBK的时候可以显示,我就开始怀疑是不是输入的字符格式还是GBK导致的。

后来查询了一番,了解到即使将win改为UTF-8编码,cmd终端的输入依旧是GBK编码。

这就没办法了,只能在程序中修改。但是改了代码的编码后,中文注释就会成乱码!所以才有这一个解决办法。

因为GCC编译会自动判断文件的编码方式,因为vscode默认是UTF8,所以GCC也默认为UTF-8,但是可以在程序编译的时候将其编译成为GBK,只需要在.vscode中tasks.json中加入

"-fexec-charset=GBK"

最终的该文件内容是这样的(看注释那里):

{

"tasks": [

{

"type": "cppbuild",

"label": "C/C++: g++.exe 生成活动文件",

"command": "C:\\VSCODE_STM32\\mingw64\\bin\\g++.exe",

"args": [

"-fdiagnostics-color=always",

"-g",

"${file}",

"-o",

"${fileDirname}\\${fileBasenameNoExtension}.exe",

//"-fexec-charset=GBK" //如果要生成一个win用的,开启GBK选项

],

"options": {

"cwd": "${fileDirname}"

},

"problemMatcher": [

"$gcc"

],

"group": {

"kind": "build",

"isDefault": true

},

"detail": "调试器生成的任务。"

}

],

"version": "2.0.0"

}

这样我们在windows下调试时,就能正常使用了。

相关作品

汽车之家
约彩365彩票官方app下载安卓

汽车之家

📅 07-17 👀 4780
50 个有趣的英语单词
约彩365彩票官方app下载安卓

50 个有趣的英语单词

📅 10-28 👀 8941