#include <stdio.h>
int main()
{
char name[10];
for(int i=0;i<=10;i++)
{
printf("Who are you? ");
if(fgets(name,10,stdin)!=NULL)
printf("Glad to meet you, %s.\n",name);
}
return(0);
}
当我输入大于10个字符的东西时,循环跳过。在C中的fgets()后清空输入缓冲区
Who are you? aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Glad to meet you, aaaaaaaaa.
Who are you? Glad to meet you, aaaaaaaaa.
Who are you? Glad to meet you, aaaaaaaaa.
Who are you? Glad to meet you, aaaaaaaaa.
Who are you? Glad to meet you, aaaaaaaaa.
Who are you? Glad to meet you, aaaaaaaaa.
Who are you? Glad to meet you, aaaaaaa
我想我想从其余字符清除输入缓冲区。什么是最好的方式来做到这一点...?
用好scanf函数的'(“%* [^ \ n]”)长度的字符; scanf函数(“% *');''而不是不正确的'scanf(“%* [^ \ n]%* c”);' – chux