乐乐学编程 发表于 2020-10-12 12:19:42

为何不能输出中文

我在 Python交流 板块看到一个 “输入年份 算天干地支生肖” 的求助帖,于是,我用C语言也写了一个,为何没有输出?

#include<stdio.h>
int main()
{
    int myyear,tiangan,dizhi,shengxiao;

    wchar_t tiangan_list = {'庚','辛','壬','癸','甲','乙','丙','丁','戊','己'},*p1;
    wchar_t dizhi_list = {'申','酉','戌','亥','子','丑','寅','卯','辰','巳','午','未'},*p2;
    wchar_t shengxiao_list = {'鼠','牛','虎','兔','龙','蛇','马','羊','猴','鸡','狗','猪'},*p3;
    *p1 = tiangan_list;
    *p2 = dizhi_list;
    *p3 = shengxiao_list;

    scanf("%d",&myyear);
    tiangan = myyear % 10;
    dizhi = myyear % 12;
    shengxiao = (myyear % 12) - 4;
    printf("%d 这一年的干支是:%c%c",myyear,*(*p1 + tiangan),*(*p2 + dizhi));
    printf("生肖是属 %c\n",*(*p3 + shengxiao));
}

风过无痕1989 发表于 2020-10-13 00:42:38


#include <stdio.h>
#include <wchar.h>
#include <locale.h>

int main( void )
{
      const wchar_t* tiangan_list   = L"庚辛壬癸甲乙丙丁戊己";
      const wchar_t* dizhi_list   = L"申酉戌亥子丑寅卯辰巳午未";
      const wchar_t* shengxiao_list = L"猴鸡狗猪鼠牛虎兔龙蛇马羊";

      unsigned year;
      scanf( "%u", &year );

      setlocale( LC_CTYPE, "" ); // ------ 仅适用于 简体中文的windows系统 且 ……
      printf( "%u 这一年的干支是:%lc%lc\n", year, tiangan_list, dizhi_list );
      printf( "生肖是属 %lc\n", shengxiao_list );
}

页: [1]
查看完整版本: 为何不能输出中文