vscode C++ windows中文输出乱码或编译报错解决方案

本文介绍了在Vscode中编写C++程序遇到中文字符时可能出现的编译警告、错误和乱码问题,原因在于Windows默认字符集与mingw编译器的UTF-8设置冲突。提供了一种快速解决方案:调整字符集至GBK,以确保正确编译和输出中文。
摘要由CSDN通过智能技术生成

        【版权声明】
本文为博主原创文章,未经博主允许严禁转载,我们会定期进行侵权检索。  

        在使用Vscode编写C++程序时,如果程序中含有中文,可能会遇到编译警告、错误或输出乱码的问题。这些问题通常源于Windows默认的字符集为Windows-936(GBK),而mingw的内部是GCC,其编译器默认按照UTF-8解析和输出,导致编码不一致而产生错误或乱码。以下将介绍具体的解决方案。

1 编译警告或错误或输出乱码

        Vscode C++程序含有中文时可能会有如下编译警告或者报错。

        warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

        error C2001: 常量中有换行符

        error C2143: 语法错误: 缺少“;”

        即使程序通过编译,那么输出中文也可能是乱码。

2 原因分析

        Windows(中文)默认的字符集是Windows-936(GBK),而mingw的内部是GCC,而其编译器默认编译的时候是按照UTF-8解析和输出的,当未指定字符集时一律当作UTF-8进行处理,于是造成乱码。

        这相当于程序输出的是UTF-8格式的结果,而Windows系统却按照GBK来解析,显然会出现错误或乱码。

3 解决方案

        上述问题解决方案有多种,例如改变Window默认字符集,或者将文件保存为GBK格式。这里采用一种适合vscode的快速解决方案,主要包含如下两个步骤。

        第一步:点击页面右下角“UTF8”。

        第二步:在弹出的页面中选择“Save with Encoding”,然后选择GBK编码即可。

        重新编译程序即可解决上述问题。

        通过以上方法,可以有效解决Vscode C++程序中含有中文时可能出现的编译警告、错误或输出乱码的问题。希望这篇博文能够帮助到遇到类似问题的开发者们。

【版权声明】
本文为博主原创文章,未经博主允许严禁转载,我们会定期进行侵权检索。  

更多python与C++技巧、三维算法、深度学习算法总结、大模型请关注我的博客,欢迎讨论与交流:https://blog.csdn.net/suiyingy,或”乐乐感知学堂“公众号。Python三维领域专业书籍推荐:《人工智能点云处理及深度学习算法》。

  • 7
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
VSCode中,当C++代码输出乱码时,可以通过以下步骤解决: 1. 首先,需要确保VSCode终端的编码方式与编辑器的编码方式一致。根据引用\[1\]中的内容,可以通过在终端中执行`chcp 65001`命令将编码设置为UTF-8。 2. 另外,还可以在VSCode的设置文件`settings.json`中进行配置。根据引用\[3\]中的内容,在`settings.json`中添加以下代码: ``` "terminal.integrated.profiles.windows": { "PowerShell": { "source": "PowerShell", "overrideName": true, "args": \["-NoExit", "/c", "chcp 65001"\], "icon": "terminal-powershell", "env": { "TEST_VAR": "value" } } }, "terminal.integrated.defaultProfile.windows": "PowerShell" ``` 这样设置后,每次打开终端时都会自动执行`chcp 65001`命令,确保终端的编码方式为UTF-8。 3. 最后,重新运行C++代码,应该就能够正常显示中文了。 请注意,以上解决方法是针对VSCode终端中C++代码输出乱码的情况,如果问题仍然存在,可能需要进一步检查代码中是否存在其他编码相关的问题。 #### 引用[.reference_title] - *1* *3* [解决VScode(C/C++)终端输出中文乱码的问题](https://blog.csdn.net/qq_46323094/article/details/118069069)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [VScode运行C++中文终端乱码问题](https://blog.csdn.net/m0_50609661/article/details/126330095)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coding的叶子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值