项目场景:
Clion使用MSVC所产生的字符问题,报错为
FAILED: CMakeFiles/Study.dir/main.cpp.obj
cl: 命令行 warning D9025 :正在重写“/Zi”(用“/Z7”)
该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
问题描述
直接上代码
#include <iostream>
using namespace std;
int main() {
int score;
cin >> score;
cout << "中文又怎么样" << score << endl;
return 0;
}
报错
FAILED: CMakeFiles/Study.dir/main.cpp.obj
cl: 命令行 warning D9025 :正在重写“/Zi”(用“/Z7”)
该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
如何解决这个报错,修改CMakeList.txt
# 面向中文字符报错需要写上
add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
输出为
20
涓枃鍙堟€庝箞鏍?0
进程已结束,退出代码为 0
解决乱码问题
#include <iostream>
#include <locale>
using namespace std;
int main() {
locale::global(locale("zh_CN.UTF-8"));
// 中文自发
int score;
cin >> score;
cout << "中文又怎么样" << score << endl;
return 0;
}
输出
20
中文又怎么样20
原因分析:
全是乱码编译器问题,都怪这些软件是歪果仁开发的,有一个自家的就不用去考虑这么多配置问题了
解决方案:
前面已经写了哦