c - 即使使用 fflush,第二个 scanf 也无法正常工作
问题描述
下面是一个我正在尝试运行的简单程序,但不幸的是它不能正常工作,当我第二次尝试输入时,它不接受输入。
#include <stdio.h>
int main(){
int inpt,
pos = 0,
neg = 0,
zero = 0;
char cont = 'y';
while(cont == 'y' || cont == 'Y') {
printf("\nPlease enter a Number: ");
scanf("%d", &inpt);
if( inpt < 0) {
neg++;
} else if( inpt > 0) {
pos++;
} else {
zero++;
}
fflush(stdin);
printf("\n Do you want to Continue:");
scanf("%c", &cont);
printf("\nvalue: %d", cont);
}
printf("\nTotal Number of Positive Integers: %d \n Total Number of Negative Integers: %d \n Total Number of Zeros: %d ", pos, neg, zero);
return 0;
}
幸运的是,我尝试调试并打印了 cont 的值,发现它是 10(这是键盘上 Enter 键的 ASCII 值)。我希望 fflush 应该清除输入缓冲区,但似乎并非如此。
任何有关如何修复的建议将不胜感激。