【发布时间】:2018-05-06 06:15:30
【问题描述】:
我有一个代码问题,我有一个 if-else 语句,它需要输入一个整数,否则会再次要求输入数字。代码在 while 语句中,问题是当我输入除整数以外的任何内容时,循环卡在给出 else 语句并崩溃
static inline void number_console(void)
{
int x = 0;
fprintf_P(stdout, PSTR(GET_NR_MSG));
lcd_goto(0x40);
if (scanf("%d", &x) == 1 && x >= 0 && x <= 9) {
printf("\nYou entered number: ");
fprintf_P(stdout, (PGM_P)pgm_read_word(&numbers[x]));
fputc('\n', stdout);
lcd_puts_P((PGM_P)pgm_read_word(&numbers[x]));
lcd_putc(' ');
} else {
printf("invalid input\n");
}
}
代码也用在while语句中
while (1) {
blink_leds();
number_console();
}
【问题讨论】:
标签: c if-statement while-loop scanf