多语言展示
当前在线:615今日阅读:126今日分享:42

C语言怎么才不会输入错误的while一直循环

C语言使用while循环里面输入后,如果进入while条件判断不合理,就一直循环,不会让你再次输入的解决方法。
工具/原料

一个编译器,一个记事本(或者其他的文本编译器)

方法/步骤
1

比如while(scanf('%d',&a)){...},如果输入的是字母,他就会一直循环,不会中断,除非关闭;

2

这个原因是因为错误输入的内容会保留在输入流,下一次判断会从输入流开始读取,因为错误输入的内容还在,所以直接判断错误,继续循环;

3

可以使用清理输入流fflush(stdin);

4

但有些编译器并不支持清理输入流。所以我们这时需要用手动输入让其清除。使用getchar();让其接收错误的字符;

5

但这样就会变成这样,如果输入多个错误就会出现多个次数的循环;直至没有错误输入;这样如果循环内容多,所消耗的资源也就多了。

6

所以我们可以使用while()来执行里面的消除字符,但如果直接这样while(getchar())就会进入无限循环,所以我们可以让其接收一个终止条件,每次输入完我们都会按回车,那就让其接收'\n'换行符终止自己的循环。

7

这样就完成了。不会无限循环,也没有多次循环消除的问题了。

推荐信息