scanf被跳过输入%c的问题

tech2024-12-24  7

摘要:关于C语言中scanf函数被无意跳过输入%c问题的探讨

为了使阐述的问题简单易懂,下面举例说明(引用例子出自“C程序设计 第五版 谭浩强著”)

命题:有15个数按由大到小顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数*

输出的错误解 输出结果如下,在还未选择“是/否”的情况下,直接跳过scanf函数执行下一行命令 正确的解法① 结果未出现异样 正确的解法② 结果未出现异常 正确的解法中间是以空格隔开数据;错误的解法是以回车键隔开程序,两者输入数据的方式无论哪种皆可

综上所述:上述现象是因为输入数据后需要键入回车才能将数据送入缓冲区,然而在此过程中下一个scanf函数整好捕获到该换行符,所以此处的解决方案就是选择以何种方式来清除这个换行符

最新回复(0)