C语言怎么才不会输入错误的while一直循环
C语言使用while循环里面输入后,如果进入while条件判断不合理,就一直循环,不会让你再次输入的解决方法。
操作方法
- 01比如while(scanf("%d",&a)){...},如果输入的是字母,他就会一直循环,不会中断,除非关闭;  
- 02这个原因是因为错误输入的内容会保留在输入流,下一次判断会从输入流开始读取,因为错误输入的内容还在,所以直接判断错误,继续循环; 
- 03可以使用清理输入流fflush(stdin); 
- 04但有些编译器并不支持清理输入流。所以我们这时需要用手动输入让其清除。使用getchar();让其接收错误的字符;  
- 05但这样就会变成这样,如果输入多个错误就会出现多个次数的循环;直至没有错误输入;这样如果循环内容多,所消耗的资源也就多了。 
- 06所以我们可以使用while()来执行里面的消除字符,但如果直接这样while(getchar())就会进入无限循环,所以我们可以让其接收一个终止条件,每次输入完我们都会按回车,那就让其接收'\n'换行符终止自己的循环。  
- 07这样就完成了。不会无限循环,也没有多次循环消除的问题了。 
 赞 (0)
                        


