我想定义字符,通过输入ascii来输出对应的字符,为什么可以输出4,不能输出2只输出了第二个字符

我想定义字符,通过输入ascii来输出对应的字符,为什么可以输出4,不能输出2只输出了第二个字符

img

img


你输入的格式有问题,你改成scanf("%d,%d",&a,&b);
然后测试的时候输入50,52就好了

要想输入字符,需要将scanf里的%d改为%c,而且scan里%c之间需要用空格隔开。
修改如下:

scanf("%c %c",&a,&b);

改成 int a,b;

试试这个


#include <stdio.h>

int main() {
    int ascii_code;
    printf("请输入一个ASCII码值: ");
    scanf("%d", &ascii_code);

    // 使用强制类型转换将ASCII码转换为字符
    char c = (char)ascii_code;
    printf("对应的字符为: %c\n", c);

    // 或者使用字符数组将ASCII码转换为字符
    char str[2];
    str[0] = (char)ascii_code;
    str[1] = '\0';
    printf("对应的字符为: %s\n", str);

    return 0;
}

可能是溢出了,输入b的时候把a的数据覆盖了。可以把a和b定义成int类型,用putchar函数输出。