如果有其他情况,希望可以发在评论区,谢谢!
需要情况1:当接受字符ch前面有scanf语句时,必须要用空的getchar()来吃掉回车,
#include"stdio.h"
int main()
{
char a,ch;
scanf("%c",&a);
getchar();//如果没有,ch接受到的就是空格
ch=getchar();
printf("a=%c\n",a);
printf("ch=%c\n",ch);
}
需要情况2:连续用2个getchar()接收字符时,中间要用一个空的getchar()来吃掉回车,否则第二个字符接收不了
#include"stdio.h"
int main()
{
char ch1,ch2;
ch1=getchar();
getchar();//没有ch2接受到的就是换行符,如下图所示
ch2=getchar();
printf("ch=%c\n",ch1);
printf("ch=%c\n",ch2);
}
不需要情况:gets(a)后面要接收ch是不需要用空的getchar()吃掉回车的
#include"stdio.h"
int main()
{
char a[100],ch;
gets(a);
ch=getchar();
puts(a);
printf("ch=%c\n",ch);
}