C语言程序文件问题。下面这个程序中的红线注释部分是什么意思。

ch是如何接收最后输入的回车符的,回车符不是作为输入字符串之间的间隔么?... ch是如何接收最后输入的回车符的,回车符不是作为输入字符串之间的间隔么? 展开
 我来答
mibaoxunbei
2014-11-30 · TA获得超过907个赞
知道小有建树答主
回答量:594
采纳率:0%
帮助的人:505万
展开全部
这是因为scanf()和getchar()函数是从输入流缓冲区中读取值的,而并非从键盘(也就是终端)缓冲区读取。
而读取时遇到回车(\n)而结束的,这个\n会一起读入输入流缓冲区的,所以第一次scanf接受输入时取走字符后会留下字符\n,这样第二次的读入函数getchar()直接从缓冲区中把\n取走了.
否则,其后的getchar就会读入这个回车符。
可以注释掉这个getchar()看看执行效果,加深理解。

详细的说明还可以参考这里:http://blog.csdn.net/hao5743/article/details/6939661

请采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-11-30
展开全部
scanf()输入完不是要回车吗,如果没有这句话,回车符就会被下面的getchar()接收,显然这是不应该的,所以就多写一个getchar()接收这个回车符。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式