三年游戏人 2015-09-04 16:33 采纳率: 50%
浏览 3458
已采纳

c语言的scanf在按下“Enter”键后到底发生了什么事情??

图片说明
图片说明

我有几个问题;
上面的解释是输入71.82后按下回车,回车被c1当作字符吸收了,c2吸收了'A';但是上面输入完b=7后,不是按下了回车键吗,最终输入了71.82按下回车后,键盘缓存中不是存留着两个回车吗?为什么c2不是吸收到回车??
scanf在按下“Enter”键后到底发生了什么事情?

  • 写回答

5条回答 默认 最新

  • TseNing 2015-09-04 16:53
    关注

    执行scanf()函数时,在键盘输入回车会把之前的输入连同回车符一起送入缓存区,然后通过格式控制符匹配对应的变量,%d %f %e等,如果格式控制字符串中连写 会以空白字符(包括回车换行)区分不同变量,但%c会把任意单个字符认为有效输入,所以c1的值是个回车符。由于输入是按顺序匹配的,第一个回车被认为是区分不同变量的空白字符。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?