C语言程序文件问题。下面这个程序中的红线注释部分是什么意思。
2个回答
展开全部
这是因为scanf()和getchar()函数是从输入流缓冲区中读取值的,而并非从键盘(也就是终端)缓冲区读取。
而读取时遇到回车(\n)而结束的,这个\n会一起读入输入流缓冲区的,所以第一次scanf接受输入时取走字符后会留下字符\n,这样第二次的读入函数getchar()直接从缓冲区中把\n取走了.
否则,其后的getchar就会读入这个回车符。
可以注释掉这个getchar()看看执行效果,加深理解。
详细的说明还可以参考这里:http://blog.csdn.net/hao5743/article/details/6939661
请采纳
而读取时遇到回车(\n)而结束的,这个\n会一起读入输入流缓冲区的,所以第一次scanf接受输入时取走字符后会留下字符\n,这样第二次的读入函数getchar()直接从缓冲区中把\n取走了.
否则,其后的getchar就会读入这个回车符。
可以注释掉这个getchar()看看执行效果,加深理解。
详细的说明还可以参考这里:http://blog.csdn.net/hao5743/article/details/6939661
请采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-11-30
展开全部
scanf()输入完不是要回车吗,如果没有这句话,回车符就会被下面的getchar()接收,显然这是不应该的,所以就多写一个getchar()接收这个回车符。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询