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

我在vs2019中写一样的代码,显示乱码

原因就是输出的中文导致的了。。
乱码的本质原因
是因为中文主要有两套编码,一套是GBK,一套是UTF-8,代码编辑器一般默认用UTF-8,而在输出的终端中默认是GBK,所以在UTF-8下的中文输出到GBK的终端自然会乱码。
(VSCode打开文件后默认的编码格式是UTF-8,而cmd默认的编码格式是gbk,不同的编码格式就导致我们程序在运行时在cmd中出现中文乱码。)
- cpp文件中的中文乱码
- 控制台打印的中文乱码
因此:给编译器加一条指令,让编译器执行时把UTF-8转成GBK给终端,就能解决问题了!
vscode解决方法
按ctrl+shift+p打开控制面板,搜索C/C++:编辑配置(JSON),按enter进入,会打开一个叫c_cpp_properties的json配置文件,按图中操作即可。


添加如下代码(前面的逗号不要落)

"compilerArgs": [
"-fexec-charset=GBK"
]
手动调整编码
然后,点击右下角的编码,选择编码


通过编码保存–>GBK


成果解决

需要提醒的是,这种方法必须在你写代码之前就要改好编码格式,如果是用UTF-8写完了才发现没改格式的话,还是需要删除掉中文重新写的!
建议设置编码是在空文件(写代码前设置,可以省去很大不必要的麻烦)
过了一段时间,再次打开cpp文件

代码乱码了

选择gbk就行。

设置默认编码
文件,首选项,设置,编码




此时,新建立的cpp文件都是GBK编码了

查看控制台:(GBK编码)

vs2019解决方法
查看控制台(utf-8编码。。。)

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



打开vs2019

点击end tasks


禁用这个插件
如果中文编码,不用强制utf-8,不然会出问题。。。

设置编码
VS 2019隐藏了高级保存功能,导致没办法直接去设置代码编码
但我们可以通过设置,调出这个命令。
1点开工具选项卡中的自定义

2将菜单栏修改成文件,如图(这里是选择我们添加命令的位置)

3 点击添加命令

在文件中,找到高级保存选项,确定

现在,在导航栏的文件中,就可以找到这个命令了

点击高级保存选项:

点击此命令

完美解决
