注册 登录
编程论坛 C语言论坛

为何不能输出中文?

风过无痕1989 发布于 2020-10-12 13:51, 1971 次点击
看到一个求助帖子(代码如下),我试了一下,编译没有问题,就是没有输出,请教该如何处理,谢谢!

程序代码:

#include<stdio.h>

int main()
{
    int myyear,tiangan,dizhi,shengxiao;

    wchar_t tiangan_list[21] = {'','','','''','','','','',''},*p1[21];
    wchar_t dizhi_list[25] = {'','','','''','','','','','','',''},*p2[25];
    wchar_t shengxiao_list[25] = {'','','','''','','','','','','',''},*p3[25];
    *p1 = tiangan_list;
    *p2 = dizhi_list;
    *p3 = shengxiao_list;

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


[此贴子已经被作者于2020-10-12 13:53编辑过]

5 回复
#2
好烦、2020-10-12 15:31
为什么我把你的代码复制过去就不行呢?
#3
好烦、2020-10-12 15:33
只有本站会员才能查看附件,请 登录

你这一行是什么东西
#4
rjsp2020-10-12 15:34
程序代码:
#include <stdio.h>
#include <wchar.h>
#include <locale.h>

int main( void )
{
    const wchar_t tiangan_list[]   = {L'',L'',L'',L'',L'',L'',L'',L'',L'',L''};
    const wchar_t dizhi_list[]     = {L'',L'',L'',L'',L'',L'',L'',L'',L'',L'',L'',L''};
    const wchar_t shengxiao_list[] = {L'',L'',L'',L'',L'',L'',L'',L'',L'',L'',L'',L''};

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

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


[此贴子已经被作者于2020-10-12 16:13编辑过]

#5
rjsp2020-10-12 15:43
这个更好一些

程序代码:
#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, "" );
    printf( "%u 这一年的干支是:%lc%lc\n", year, tiangan_list[year%10], dizhi_list[year%12] );
    printf( "生肖是属 %lc\n", shengxiao_list[year%12] );
}
#6
风过无痕19892020-10-13 00:31
谢谢!
1