c++报错:常量中有换行符(中文编码问题)

error C2001: 常量中有换行符

  • error
  • 乱码的本质原因
  • vscode解决方法
    • 手动调整编码
    • 设置默认编码
  • vs2019解决方法
    • 安装UTF-8插件
    • 设置编码

error

c++报错:常量中有换行符(中文编码问题)_第1张图片
我在vs2019中写一样的代码,显示乱码
c++报错:常量中有换行符(中文编码问题)_第2张图片
原因就是输出的中文导致的了。。

乱码的本质原因

是因为中文主要有两套编码,一套是GBK,一套是UTF-8,代码编辑器一般默认用UTF-8,而在输出的终端中默认是GBK,所以在UTF-8下的中文输出到GBK的终端自然会乱码。
(VSCode打开文件后默认的编码格式是UTF-8,而cmd默认的编码格式是gbk,不同的编码格式就导致我们程序在运行时在cmd中出现中文乱码。)

  1. cpp文件中的中文乱码
  2. 控制台打印的中文乱码

因此:给编译器加一条指令,让编译器执行时把UTF-8转成GBK给终端,就能解决问题了!

vscode解决方法

按ctrl+shift+p打开控制面板,搜索C/C++:编辑配置(JSON),按enter进入,会打开一个叫c_cpp_properties的json配置文件,按图中操作即可。
c++报错:常量中有换行符(中文编码问题)_第3张图片
c++报错:常量中有换行符(中文编码问题)_第4张图片
添加如下代码(前面的逗号不要落)
c++报错:常量中有换行符(中文编码问题)_第5张图片

            "compilerArgs": [
                "-fexec-charset=GBK"
            ]

手动调整编码

然后,点击右下角的编码,选择编码
c++报错:常量中有换行符(中文编码问题)_第6张图片
c++报错:常量中有换行符(中文编码问题)_第7张图片

通过编码保存–>GBK
c++报错:常量中有换行符(中文编码问题)_第8张图片
c++报错:常量中有换行符(中文编码问题)_第9张图片
成果解决
c++报错:常量中有换行符(中文编码问题)_第10张图片

需要提醒的是,这种方法必须在你写代码之前就要改好编码格式,如果是用UTF-8写完了才发现没改格式的话,还是需要删除掉中文重新写的!

建议设置编码是在空文件(写代码前设置,可以省去很大不必要的麻烦)

过了一段时间,再次打开cpp文件
c++报错:常量中有换行符(中文编码问题)_第11张图片
代码乱码了
c++报错:常量中有换行符(中文编码问题)_第12张图片
选择gbk就行。
c++报错:常量中有换行符(中文编码问题)_第13张图片

设置默认编码

文件,首选项,设置,编码
c++报错:常量中有换行符(中文编码问题)_第14张图片

c++报错:常量中有换行符(中文编码问题)_第15张图片
c++报错:常量中有换行符(中文编码问题)_第16张图片
c++报错:常量中有换行符(中文编码问题)_第17张图片
此时,新建立的cpp文件都是GBK编码了
c++报错:常量中有换行符(中文编码问题)_第18张图片
查看控制台:(GBK编码)
c++报错:常量中有换行符(中文编码问题)_第19张图片

vs2019解决方法

查看控制台(utf-8编码。。。)
c++报错:常量中有换行符(中文编码问题)_第20张图片

安装UTF-8插件

(其实不用安装这个。。)
安装UTF-8插件。

c++报错:常量中有换行符(中文编码问题)_第21张图片
c++报错:常量中有换行符(中文编码问题)_第22张图片
c++报错:常量中有换行符(中文编码问题)_第23张图片
打开vs2019
c++报错:常量中有换行符(中文编码问题)_第24张图片
点击end tasks

c++报错:常量中有换行符(中文编码问题)_第25张图片
c++报错:常量中有换行符(中文编码问题)_第26张图片
禁用这个插件
如果中文编码,不用强制utf-8,不然会出问题。。。
c++报错:常量中有换行符(中文编码问题)_第27张图片

设置编码

VS 2019隐藏了高级保存功能,导致没办法直接去设置代码编码
但我们可以通过设置,调出这个命令。
1点开工具选项卡中的自定义
c++报错:常量中有换行符(中文编码问题)_第28张图片
2将菜单栏修改成文件,如图(这里是选择我们添加命令的位置)
c++报错:常量中有换行符(中文编码问题)_第29张图片
3 点击添加命令
c++报错:常量中有换行符(中文编码问题)_第30张图片
在文件中,找到高级保存选项,确定
c++报错:常量中有换行符(中文编码问题)_第31张图片
现在,在导航栏的文件中,就可以找到这个命令了
c++报错:常量中有换行符(中文编码问题)_第32张图片
点击高级保存选项:
c++报错:常量中有换行符(中文编码问题)_第33张图片
点击此命令
c++报错:常量中有换行符(中文编码问题)_第34张图片
完美解决
c++报错:常量中有换行符(中文编码问题)_第35张图片

你可能感兴趣的:(小Tips,c++,vscode,开发语言)