#include<stdio.h>
int main()
{
char str[10];
int i;
for(i = 0; i < 3;i++)
{
scanf("%c",&str[i]);
}
return 0;
}
发现循环中本应输入3个数据,但是实际只能输入2个字符
原因:应用scanf语句输入时,回车键留在了缓冲区,下次输入时自动将缓冲区的回车键输入,实际输入为两个数据和一个回车
解决方法一:使用getchar语句
#include<stdio.h>
int main()
{
char str[10];
int i;
for(i = 0; i < 3;i++)
{
str[i]=getchar();
}
return 0;
}
解决方法二:
在scanf语句前面或者后面加入 语句getchar();
清除缓冲区中的回车符