先上代码!
#include<stdio.h>
int main()
{
//观察三个getchar()
//简单上个例子,输入n组数据
int n;
scanf("%d",&n);
//第一个!
getchar();
while (n--)
{
char a;int b;
scanf("%c", &a);
//第二个!!
getchar();
scanf("%d", &b);
//第三个!!!
getchar();
printf("%c %d\n", a, b);
}
return 0;
}
PS:注意%c%s
一般我们输入都会是
3\n
\n作为一个字符,进入了缓冲区,scanf就是读取缓冲区的东西。
所以按自己的想象,本该读取a,但是\n留在那里就会读取\n,所以就出错了。
getchar()作用是读取一个字符,也就是消灭掉\n了。
后面两个getchar()都一样
总结:
使用scanf("%c")时
前看有无scanf,有则加getchar()