为什么输出的是ASCII码?

为什么输出的是ASCII码?

问题描述:

这是为什么?


#include<stdio.h>
int main()
{
    char money[40];
    int i, j;
    for (i = 0; i < 40; i++)
    {
        money[i] = getchar();
        if (money[i] == '\n')
            break;
        printf("%d\n", money[i]);
    }

    return 0;

}


img

使用%c输出即可,你这里用的%d

补充:
printf转换说明符
%a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99)
%c 字符
%d 有符号十进制整数
%f 浮点数(包括float和doulbe)
%e(%E) 浮点数指数输出[e-(E-)记数法]
%g(%G) 浮点数不显无意义的零"0"
%i 有符号十进制整数(与%d相同)
%u 无符号十进制整数
%o 八进制整数 e.g. 0123
%x(%X) 十六进制整数0f(0F) e.g. 0x1234
%p 指针
%s 字符串
%% "%"
————————————————
版权声明:本文为CSDN博主「zzb_max」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zzb2019/article/details/89447920

你printf里面是%d,输出的是整形

因为你使用了%d,而数组是char型

printf("%d\n", money[i]); %d 当然是ASCII值了。

仔细看看getchar()用法说明

img