C++ string输出乱码问题

#include <iostream>#include <string>using namespace std;void main(){ string a; int b; cin>>a; b=a.length(); for(int i=0;i<b;i++) cout<<a[b-1-i];} 输入"1234567abcef"输出 "fedcba7654321"很正常,但是我输入"你好我好大家好"就会出现乱码,只要是中文就是乱码而英文和数字却不会这是什么问题?有什么办法可以输出正常?
2026年09月25日 00:11
有3个网友回答
网友(1):

因为英文每个字符占1个字节,而中文占2个或3个字节,windows下的程序处理字符串时默认不是unicode编码,如果你加上#define UNICODE 然后把所有字符串类型改成wchar_t类型,常量都改成_T("字符串")倒也可以但是用下标访问会乱码。建议你用容器存取,用迭代器访问字符串的内容。
因为STL已经考虑到国际化的问题了。

网友(2):

string 只是char的容器
你要用wstring,这个里面封装的是wchar_t ,这个可以支持多字节字符。这个类的使用和string一样
,因为它们都是来自一个模板。
注意,多字节字符字面常量 这样表示 L“你好我好大家好”,

网友(3):

友客电脑论坛有教程