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)
- 
  1.使用下面的语句清除回车:
  
while(getchar()!='\n');
2.用getche()或getch()代替getchar(),其作用是从键盘读入一个字符(不用按回车) 
getchar()使用不方便,解决方法:
  
 


















