它第一次工作,第二次执行时,它会跳过第二个 scanf 函数。从几页谷歌后,注意到这是在缓冲中添加 \n 的 scanf 函数的行为,为了解决这个问题,我在 scanf 之后添加了 fflush(stdin) 并且它确实有效,但是当第二次执行时,它给我一个错误的结果。有人可以指导我这个程序有什么问题吗?
#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;
}