第一次输入时没问题,可是第二次开始就会遇到问题?
#include<stdio.h>
int main()
{
int a,b,c;
while(1)
{
scanf("%c%c%c",&a,&b,&c);
printf("%c %c %c\n",a,b,c);
}
}
如下图:
当我们按下回车,把键盘缓存区的数据送入输入缓存区时,最后按下的回车键也会被送入输入缓存区,所以第二次输入时,我们先读取的是上一次输入结束的换行符。
这个问题只存在于字符的输入,整型、双精度等等不会出现。
这个时候我们只要在第一次输入结束的时候,用getchar()吸收一个字符就可以解决问题了。
#include<stdio.h>
int main()
{
int a,b,c;
while(1)
{
scanf("%c%c%c",&a,&b,&c);
getchar();
printf("%c %c %c\n",a,b,c);
}
}