C语言getchar(), while ((c = getchar()) != '\n')printf("%c", c)输入ABC,输出ABC而不是AABBC?

while((c=getchar())!='\n')printf("%c",c)输入ABC回车,输出ABC,为什么不是AABBC?... while ((c = getchar()) != '\n')printf("%c", c)
输入ABC回车,输出ABC,为什么不是AABBC?
展开
 我来答
冰火梦幻
2012-10-04 · TA获得超过2308个赞
知道小有建树答主
回答量:1095
采纳率:57%
帮助的人:428万
展开全部
getchar在回车前不处理输入缓冲区的内容。
楼主试试看_getch()替换getchar()
头文件是conio.h
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mlsomnusfish
2012-10-05 · 超过10用户采纳过TA的回答
知道答主
回答量:33
采纳率:0%
帮助的人:21.8万
展开全部
getchar()函数是从buffer里获取数据,也就是说输入的ABC先存储在buffer里,当按下回车键时,getchar()函数开始从buffer中逐个读取数据
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天堂路45号
2012-10-04
知道答主
回答量:31
采纳率:0%
帮助的人:12.4万
展开全部
你输入的书ABC啊,while循环的条件是你不按回车键时就不结束。每次循环时都要输入,且输出显示输入的字符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
duh2so4
2012-10-04 · 超过21用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:54.4万
展开全部
输入回车以后程序才开始处理缓冲内的所有内容
追问
printf("%c", c)也是缓冲区中的内容吗?所以才会输出一个字符串,是这样吗?谢谢
追答
嗯,正解……答得有点迟,抱歉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式