初学者提问,运行下述代码,为什么当输入数字时,能正常运行。但是当输入字符时,会忽略scanf函数,从而进入死循环,而不是重新获取输入?
#include <stdio.h>
int main()
{
float MB = 33, GU;
bool PD;
while (1)
{
PD = scanf_s("%f", &GU);
//printf("%d。\n",PD);
if (PD != 1)
printf("请输入数字。\n");
else
{
if (GU < MB)
printf("太小了。\n");
else if (GU > MB)
printf("太大了。\n");
else
{ printf("答对了。\n");
break;
}
}
}
return 0;
}
运行结果: