如果用scanf()
scanf()是以\t \n space 为结束标志。
循环进行时,输入一个字符就会有一个 \n作为结束,那么下一个scanf()就不会有输入,因为结束了。
举例
#include<stdio.h>
int main()
{
for (i = 0; i < 5; i++)
{
scanf_s("%c",&a[i],1);
printf("%c \n",a[i]);
}
return 0;
}
这样的解决办法是在scanf后面加一个getchar()来清楚缓冲区中的回车符
int main()
{
int i;
char a[5];
for (i = 0; i < 5; i++)
{
scanf_s("%c", &a[i],1);
getchar(); //就加入了这一行。
printf("%c ", a[i]);
}
return 0;
}
还要知道gets()是以换行符为结束标志的。当遇到换行符时,函数停止读取,回车符不会被载入缓冲区。