当我们执行以下代码时:
#include <stdio.h>
int main(void){
char x,y;
scanf("%c", &y);
x = getchar();
putchar(x);
return 0;
}
在scanf("%c", &y);
语句中输入的输入将传递给 x。有什么办法可以逃脱吗?我现在,如果我们使用scanf
那么我们可以通过scanf("%*c%c", &x);
忽略n
,但不知道在使用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(; 来处理这个问题。