初めて機能し、2回目に実行すると、2番目のscanf関数がスキップされます。いくつかのページからグーグルで検索した後、バッファリングに \n を追加するのは scanf 関数の動作であることに気付き、これを解決するために、scanf の後に fflush(stdin) を追加し、機能しましたが、2 回目に実行すると、間違った結果を教えてください。誰かがこのプログラムの問題を教えてくれますか?
#include <stdio.h>
#include <stdlib.h>
int main()
{
char UserInput[50];
int i = 0;
int exit;
do{
printf("Please enter a string (less than 50 character): ");
scanf("%[a-z,A-Z, ,]s",&UserInput);
while(UserInput[i] != '\0' && i<50)
{
i++;
}
if (i==50)
printf("The string is too long\n");
else
printf("The length of the string is %d\n",i);
printf("To continue, please key in any numbers other than 0: ");
scanf("%d",&exit);
fflush(stdin);
}while(exit !=0);
system("PAUSE");
return 0;
}