宽字符输出中文,Devc++解决方法

有群友问类似问题,然后我编译了一下试试:

#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 \n2: %ls\n",aa,bb);
    
}

正当我嘴角疯狂上扬时......

 

小朋友,你是否有很多问号???

好了,查了一下(百度),发现是编码不符合。

dev里的编码之前我也证明过,是ANSI,宽字符很明显不能兼容。

解决方法:在编译时加入一点参数

 

很好,接下来就能编译成功了!

 

其实,有个问题我没说,就是setlocale(LC_ALL,"chs");这句

其中的chs代表中国地区,而不是zh_CN的写法,如果不加这句,就是系统默认的区域

如果你的系统设置的是中国,那么setlocale(LC_ALL,"");的效果就等同于setlocale(LC_ALL,"chs");

具体细节请自行查询,编码这块实在是一个蛋疼的地方呢。

 

posted @ 2020-05-27 10:18  『PTA00』  阅读(911)  评论(0编辑  收藏  举报