5203230070 发表于 2019-4-6 22:06:06

要求输入整数,但输入了一个字母或符号,程序陷入死循环,怎么办?求解

我在网上查了一下这个问题,但我并不想用fflush(stdin),
用while(getchar()!='\n')也不管用,
还有没有别的办法啊。。。
请那个大家可以留言。
感谢

jackz007 发表于 2019-4-6 22:06:07

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

main(void)
{
      char buf                                    ;
      int n                                           ;
      for(;;) {
                printf("input a integer please : ")   ;
                fgets(buf , 80 , stdin)               ;
                if(sscanf(buf , "%d" , & n) == 1) break ;
                else printf("input error !\n")          ;
      }
      printf("n = %d\n" , n)                        ;
}

5203230070 发表于 2019-4-7 10:20:00

jackz007 发表于 2019-4-7 00:46


这位朋友,可以讲一下吗。。。
那个为什么用fgets()

5203230070 发表于 2019-4-7 10:31:10

jackz007 发表于 2019-4-7 00:46


十分感谢,我明白了
页: [1]
查看完整版本: 要求输入整数,但输入了一个字母或符号,程序陷入死循环,怎么办?求解