有群友问类似问题,然后我编译了一下试试:
#include <stdio.h> #include <wchar.h> #include <locale.h> int main(void){ wchar_t aa[] =L"测试看看asdf1234"; wchar_t *bb =L"C语言2333kkkdkkd"; //将本地环境设置为简体中文 setlocale(LC_ALL,"chs"); //使用通用的 wprintf 输出宽字符 wprintf(L"1: %ls 2: %ls ",aa,bb); }
正当我嘴角疯狂上扬时......
小朋友,你是否有很多问号???
好了,查了一下(百度),发现是编码不符合。
dev里的编码之前我也证明过,是ANSI,宽字符很明显不能兼容。
解决方法:在编译时加入一点参数
很好,接下来就能编译成功了!
其实,有个问题我没说,就是setlocale(LC_ALL,"chs");这句
其中的chs代表中国地区,而不是zh_CN的写法,如果不加这句,就是系统默认的区域
如果你的系统设置的是中国,那么setlocale(LC_ALL,"");的效果就等同于setlocale(LC_ALL,"chs");
具体细节请自行查询,编码这块实在是一个蛋疼的地方呢。