怎么样通过wcout输出宽字符?
环境:Win2000, codeblocks + MinGW + STLPort510
写在前面:MinGW不支持宽字符的输出,于是我用 STLPort 库代替 MinGW 自带的 STL 库。
好不容易把 STLPort 安装成功了,心想试一下看输出宽字符怎么样,没想到,还是不成功,于是我查了资料,发帖询问,最后写了这篇文章,在此谢过帮助过我的朋友们。
STLPort510 的安装请参考我的另一篇文章(MinGW 编译安装 STLPort5.1.0 ),本篇文章使用它编译出来的库。
先写一段代码,就以这段代码作为测试。
//==========================================
#include <iostream>
int main()
{
std::wcout.imbue(std::locale("chs"));
wchar_t wsz[] = L"abcd中华人民共和国";
std::wcout<< wsz<< std::endl;
system("pause");
return 0;
}
//==========================================
现在,详细说一下 codeblocks 的设置情况。
1、设置编译器的搜索路径,把你的 STLPort/stlport,STLPort/lib放到搜索路径的最前面。
设置-->编译器和调试器设置:
-->Compiler settings-->其它选项:添加"-mthreads",不含引号。
-->Search directories,编译器:添加 STLPort/stlport 到最上面;连接器:添加 STLPort/lib 到最上面。
-->Linker settings, 添加 STLPort/lib 目录下的三个文件。
2、设置编辑器。设置-->编辑器-->常规设置,选择打开夜时的默认编码为:UTF-8。
现在编译、执行上面的代码,It's successful。
本文地址:http://www.45fan.com/a/luyou/70673.html