输入缓存的影响

来源:3-9 循环语句

wxz123

2020-12-21

图片描述
老师为啥上图中的s输入后回车,这个回车停留在输入的缓存中不影响left、operator、right的输入,而下图中left、operator、right输入回车后,回车停留在输入的缓存中就影响了s呢,s的输出直接为换行符了?
图片描述

写回答

1回答

bennyhuo

2020-12-21

第一个图,getchar会等待一个字符输入,你敲了一个回车,s就被赋值为回车字符了,你再输入算式,回车,scanf读取算式,回车仍然在缓冲区当中。

第二个图里面,你输入算式之后,回车,scanf只读取算式,你这时候敲得回车依然在缓冲区,被接下来的getchar直接读走了。

另外,缓冲区不是缓存。注意区分。

仔细想想。其实没啥。

1
6
鸿鹄之志工程师
回复
bennyhuo
老师可以说说吗
2021-08-18
共6条回复

C语言系统化精讲 重塑编程思想 打造坚实的开发基础

如果通向大牛的道路有捷径,那就是先学好C语言

2208 学习 · 853 问题

查看课程