学编程的为者 发表于 2022-2-24 15:32:51

putchar的输入输出问题

自行练习中,和别人的语句一样,但是不能正常输出,是什么问题啊
# include<stdio.h>
int main()
{
    char a,b,c;
    a=getchar();
    b=getchar();
    c=getchar();
    a=a+32;
    b=b+32;
    c=c+32;
    putchar(a);
    putchar(b);
    putchar(c);
    putchar('\n');
    return 0;
}

ba21 发表于 2022-2-24 15:37:15

你输入 1。实际上你输入了 1 和 '\n' 2个字符。getchar没有过滤\n的功能。
# include<stdio.h>
int main()
{
    char a,b,c;
    a=getchar();
getchar();
    b=getchar();
getchar();
    c=getchar();
getchar();
    a=a+32;
    b=b+32;
    c=c+32;
    putchar(a);
    putchar(b);
    putchar(c);
    putchar('\n');
    return 0;
}

wp231957 发表于 2022-2-24 15:37:35

大写字母加32是本家小写
小写字母加32 超出ascii码范围故:无法显示

isdkz 发表于 2022-2-24 15:43:07

本帖最后由 isdkz 于 2022-2-24 15:47 编辑

你那个是把大写变小写的,把小写变成大写应该是减32,小写字母的ascii码加32就有可能超出ascii码的范围了,所以有可能无法显示,

还有你输入的逗号也算一个字符,用getchar()就不要输入逗号
# include<stdio.h>
int main()
{
    char a,b,c;
    a=getchar();
    b=getchar();
    c=getchar();
    a=a-32;            // 改成减32
    b=b-32;
    c=c-32;
    putchar(a);
    putchar(b);
    putchar(c);
    putchar('\n');
    return 0;
}

学编程的为者 发表于 2022-2-24 18:57:13

isdkz 发表于 2022-2-24 15:43
你那个是把大写变小写的,把小写变成大写应该是减32,小写字母的ascii码加32就有可能超出ascii码的范围了, ...

谢谢啦

学编程的为者 发表于 2022-2-24 18:59:17

wp231957 发表于 2022-2-24 15:37
大写字母加32是本家小写
小写字母加32 超出ascii码范围故:无法显示

谢谢啊

学编程的为者 发表于 2022-2-25 10:55:54

ba21 发表于 2022-2-24 15:37
你输入 1。实际上你输入了 1 和 '\n' 2个字符。getchar没有过滤\n的功能。
# include
int main()


谢谢啦
页: [1]
查看完整版本: putchar的输入输出问题