getchar()的用法

getchar的功能

它的作用是从stdin流中读入一个字符,也就是说,如果stdin有数据的话不用输入它就可以直接读取了,第一次getchar()时,确实需要人工的输入,但是如果你输了多个字符,以后的getchar()再执行时就会直接从缓冲区中读取了。

所以我们知道他的功能和scanf的功能差不多,都是从stdin上读取字符,区别就是getchar上我们读取一个字符。

例题判断字母

在这里插入图片描述

#include <stdio.h>
 
int main() {
    int a;
    while(scanf("%d",&a)!=EOF)
    {
 		if(a>='A'&&a<='z')
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
    }    
    return 0;
}

我们发现用scanf过不去,因为是多组样例,进行当我们进行完一个字符后,我们会输入换行或者回车,其实这也相当于一个字符,而我们的scanf就将这个字符读取了,所以导致我们运行超时,所以我们要将这个换行或者更回车字符读取,我们才可以进行下一个判断,所以我们就可以用getchar将这个字符读取掉。

#include <stdio.h>
 
int main() {
    int a;
    while((a=getchar())!=EOF)
    {
        getchar();
        if(a>='A'&&a<='z')
        {
            printf("YES");
        }
        else
        {
            printf("NO");
        }
         
    }   
    return 0;
}

使用getchar()将其回车吸收掉就可以进行下一个字符的判断。
getchar()是在输入缓冲区顺序读入一个字符(包括空格、回车和Tab)

getchar()使用不方便,解决方法:
1.使用下面的语句清除回车: while(getchar()!='\n');
2.用 getche()getch()代替 getchar(),其作用是从键盘读入一个字符(不用按回车)
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桐桐超努力

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值