学习C++在做一个简单的项目时发现一个乱码问题,尝试了多种方法无法解决
使用函数内赋值的方式输出结果正确:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string i;
i="你好";
cout<<i<<endl;
return 0;
}
你好
但是使用cin函数输入再输出出现乱码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
string i;
cin>>i;
cout<<i<<endl;
return 0;
}
你好
��
思索再三不知道是哪里的编码出现问题,想到可能是编译器使用的编码跟我的不一样导致的?
为何函数内直接给i赋值可以正常打印,我自己用cin函数敲进去不行
由于原本使用的是UTF-8编码,尝试更改电脑时区/区域里的编码方式为GBK编码后正常显示了
难道cin函数只能识别GBK编码的中文输入?
但是我想用UTF-8编码的方式也能正常显示,请问大家有没有不更改编码方式也能正确显示的方法?
格式错误
#include <iostram>
#include <string.h>
using namespace std;
int main()
{
string i;
cin>>i;
cout<<i<<endl;
return 0;
}
g++ 加编译参数-fexec-charset=utf-8
看下这篇博客,也许你就懂了,链接:C++ cin输入多个数据请问博主你解决了吗?我这是跟你一样的问题...