wchar_t cc[] = L"搜素所得税";
cout<<cc<<endl;
为何输出的是地址?而不是汉字?
------解决方案--------------------
- C/C++ code
setlocale(0,"chs"); wcout<<cc<<endl;
------解决方案--------------------
C++默认的Locale是EN_US,而且一般终端(尤其是Windows下的)不支持Unicode。所以需要将wchar_t转化为本地编码,这个过程就依赖你设定的locale了。
不过1楼的方法不对,
类似setlocale(LC_ALL, "chs"); ,这样的wprintf需要,也就是Unicode的C运行库函数。
对于wcout这样的C++类,应该用std::wcout.imbue(std::locale("chs"));
注意两者是不能混用的,如果用了一个,另外一种输出方式就会错误。所以不要混用wcout和wprintf。这算是目前C/C++不兼容的BUG
Linux下是可以直接wcout也可以wprintf的,不过它的wchar_t是4字节的编码是UTF-8。