采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师为啥上图中的s输入后回车,这个回车停留在输入的缓存中不影响left、operator、right的输入,而下图中left、operator、right输入回车后,回车停留在输入的缓存中就影响了s呢,s的输出直接为换行符了?
第一个图,getchar会等待一个字符输入,你敲了一个回车,s就被赋值为回车字符了,你再输入算式,回车,scanf读取算式,回车仍然在缓冲区当中。
第二个图里面,你输入算式之后,回车,scanf只读取算式,你这时候敲得回车依然在缓冲区,被接下来的getchar直接读走了。
另外,缓冲区不是缓存。注意区分。
仔细想想。其实没啥。
老师您好,第一张图中的getchar,假如我先输入一个a,再回车,那么这个回车就会在缓冲区中,这个缓冲区的回车为啥不会影响接下来输入的算式呢?
因为scanf的格式符,d会忽略空白。
你换成c试试就不一样了
登录后可查看更多问答,登录/注册
如果通向大牛的道路有捷径,那就是先学好C语言
1.5k 3
1.0k 4
1.3k 9
1.5k 1
804 2