这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
刚开始以为只需要充宽字符存储就可以了,实际不然,
还得加:
imbue(locale("chs"));
C++里面用L宏的时候只是说是宽字符,但是并不一定是Unicode,也就是说具体使用什么字符集要程序员自己去设定,这就是imbue的作用,那你文件里不能输入汉字也是这个问题,你只要象下面一样设置下就可以了: wchart wch = L'我; UNICODE 码 wchart wch2 = '我' ; GB2312 码。
in.imbue(locale("chs"));
in>>text;
out.imbue(locale("chs"));
out<
#include
using namespace std;
int main()
{
cout << "Input your name:" << endl;
wchar_t ch;
wcin.imbue(locale("chs"));
wcin >> ch;
wcout.imbue(locale("chs"));
wcout << ch << endl;
getchar();
cout << "\aOperation \"HyperHype\" is now activated!\n";
cout << "Enter your agent code:________\b\b\b\b\b\b\b\b";
string code;
cin >> code;
cout <<"\aYou entered " << code << "...\n";
cout << "\aCode verified! Proceed with Plan Z3!\n";
return 0;
}