当我们执行下面的代码时。
#include <stdio.h>
int main(void){
char x,y;
scanf("%c", &y);
x = getchar();
putchar(x);
return 0;
}
正在输入的回车键 scanf("%c", &y);
有什么办法可以避免这种情况的发生吗?我现在知道,如果我们使用 scanf
那么我们就可以忽略 \n
由 scanf("%*c%c", &x);
但不知道该怎么做,而使用 getchar()
.
你可以做这样的事情
#include <stdio.h>
int main(void)
{
char x,y,ch;
scanf("%c%*c", &y);
while((ch=getchar())!='\n'&&ch!=EOF); //removes all character in input buffer
x = getchar();
putchar(x);
return 0;
}
基本上是输入缓冲区的问题,在你的情况下,你可以使用另一种输入字符串getchar()与fflush(stdin);来处理这个问题。