如题所述
scanf叫做“格式化输入”函数,这个函数是“脆弱型”的输入处理,在遇到非法输入的时候,只会跳过,不会清理输入缓冲区,造成了你在while中这样做就是死循环,因为缓冲区一直有“已经输入的并且未清除的内容”。
解决办法很简单,在printf语句之前,清理一下缓冲区即可:
谢谢了,学到了。
不是下面还有一个m=scanf("%d",&falg)提醒再一次输入了吗,怎么直接跳过了这句直接打印的那句死循环了?我输入超范围数字是可以的,其他就不行了。不知道为什么。谢谢了