文章目录
-
-
- 一、使用VSCode调试不论用内部终端还是外部cmd都没办法输入数字、字母和中文
- 二、本例需要输入中文,但把输入的中文存入数组中发现不是UTF-8编码的导致程序输出不对
-
-
- 前提:
- 解决:
- [①验证电脑上是否有windows terminal:](#①验证电脑上是否有windows terminal:)
- [②将windows默认终端配置成windows terminal](#②将windows默认终端配置成windows terminal)
- ③配置launch.json
- ④配置tasks.json
- ⑤配置settings.json
-
- 三、怎么确认源代码、编译器、控制台编码都已配置成了UTF-8编码
-
一、使用VSCode调试不论用内部终端还是外部cmd都没办法输入数字、字母和中文
前提:
①VSCode内部是在终端窗口来输入数据的
②若需打开外部窗口launch.json配置"externalConsole": true 按下F5调试会自动打开cmd窗口
如果确认输入窗口没问题,那么再看下输入时机,即代码走到哪步我们才可以输入数据
错误的输入时机:

正确的输入时机:
再次按下单步跳过,调试会显示暂停,等待用户输入。输入完毕后回车,调试即可继续。


完整的演示:

二、本例需要输入中文,但把输入的中文存入数组中发现不是UTF-8编码的导致程序输出不对
前提:
源代码、编译器、控制台编码都已统一成了UTF-8编码但是程序输出错误
解决:
拷打了元宝,让我使用windows terminal(没有安装需要安装,在Microsoft store即可安装)
①验证电脑上是否有windows terminal:
用win+R打开运行窗口输入wt能弹出窗口即为已安装


②将windows默认终端配置成windows terminal


③配置launch.json
需要注意的只有配置"externalConsole": true 这样能保证调试时打开的是windows terminal

④配置tasks.json
先选择"C/C++: gcc.exe 生成活动文件",来编译生成.exe文件
编译完想要用windows terminal执行,选择"在Windows Terminal中运行",否则就继续在VScode终端中执行

plain
{
"tasks": [
{
"label": "在Windows Terminal中运行",//编译完想要用windows terminal执行,选择这个,否则就继续在VScode终端中执行
"type": "process",
"command": "wt.exe",
"args": [
"-w",
"0",
"nt",
"--title",
"${fileBasenameNoExtension}",
"cmd",
"/k",
"cd /d \"${fileDirname}\" && chcp 65001 && \"${fileBasenameNoExtension}.exe\" && echo. && pause"
],
"group": "test",
"presentation": {
"reveal": "always",
"panel": "shared",
"focus": false
}
},
{
"type": "cppbuild",
"label": "C/C++: gcc.exe 生成活动文件",//先编译,选择这个
"command": "C:\\msys64\\mingw64\\bin\\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"-fexec-charset=UTF-8", // 关键:exe 输出中文编码为 UTF-8
"-finput-charset=UTF-8" // 关键:告诉编译器源文件是 UTF-8 编码
//"-fexec-charset=GBK",
//"-finput-charset=GBK"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "调试器生成的任务。"
}
],
"version": "2.0.0"
}
⑤配置settings.json



三、怎么确认源代码、编译器、控制台编码都已配置成了UTF-8编码
①源代码:

②编译器:

③VSCode控制台
命令检测:输入chcp--输出为65001即为UTF-8编码



plain
"terminal.integrated.defaultProfile.windows": "PowerShell",
"terminal.integrated.profiles.windows": {
"Windows Terminal": {
"path": "wt.exe",
"args": [
"-w",
"0",
"nt"
]
},
"PowerShell": {
"source": "PowerShell",
"icon": "terminal-powershell",
"args": [
"-NoLogo",
"-NoExit",
"-Command",
"chcp.com 65001"
]
},
"Command Prompt": {
"path": [
"${env:windir}\\Sysnative\\cmd.exe",
"${env:windir}\\System32\\cmd.exe"
],
"args": [
"/K",
"chcp 65001"
],
"icon": "terminal-cmd"
}
}


