#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