程序出错:屏幕一直循环输出

在一些循环结构中,当需要判断某个变量的整型值作出判断是,常常因为输入时是个字符导致循环不停地进行下去。

循环如:

wKioL1WvJrCxaIy5AAEWSHgW6D4554.jpg


程序代码类似:

wKioL1WvJGqRC7CWAAGQv-yM0zs536.jpg


根据现象分析:

红色方框处的语句,scanf 在读入一个数字“%d”时没有得到数字输入,会认为输入为空一样处理该语句。循环继续执行。可是输入流中始终存在一个输入的字符,所以每次循环到此都认为输入为空。循环就不断执行。

 

解决:

添加一行处理掉输入的字符。释放红色方框中的注视语句,问题得以解决。

 

分析:

因为释放的语句读入的是流中第一个字符,那么这个解决方法应该存在一些问题。当输入是两个字符时,会是什么现象? 现象是 getchar 执行到处理掉全部输入的字符。同理要是字符中掺入数字……

 

说明:

getchar() 函数每次处理流中的首个字符,剩下的字符还仍然剩着。

 

那么:

就把判断的条件设置成字符,而判断时作些其他处理,……



 


wKiom1YbpuWiRQ3yAABm5lAGjro733.jpg

本文出自 “小崔的实验笔记” 博客,谢绝转载!

你可能感兴趣的:(程序)