求教 C语言中的getchar问题 如图 这个程序里的第一个ch=getchar不是用来读

求教 C语言中的getchar问题

如图 这个程序里的第一个ch=getchar不是用来读取第一个字符并且只能读取一个字符的么 那为什么下边的运行事例第一行输入那么多的字符都被成功的译码了 本人小白

不是有个循环吗,while(ch != '\n') ,循环体里面还有个ch = getchar(), 这样在不输入回车前会一直读取并处理输出。实际上确实是一个字符一个字符读取并处理的,不知这样说你明白没有?追问

那为什么第一个字符读取输出之后执行循环的时候就读取第二个字符 是读取一个字符之后就不再读取它了吗

还有循环体里的最后一个getchar语句 这样执行循环不是每次读取完一个字符之后都要重新输入数据的吗?

追答

第一个相当于赋值,否则循环条件判断while (ch != '\n')会出错,因为ch只定义了而没有赋值,可能是null值,用于判断就会出错。
理论上是循环一次输入一个字符,但是,但是,计算机处理器运算速度太快了,远远快于你IO输入的速度,你打得再快,它也比你快,所以它99.99%的时间都是在等你输入,你刚输入,它就处理完了,继续等你输入……

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-12-04
这是因为有个while循环的作用

使用下面的语句清除回车:
while(getchar()!='\n');
第2个回答  2014-12-04
在while 循环的最后一行还有一句getchar()追答

所以才会一直接收字符

追问

不明白。。大神能说的详细点吗?

还有循环体里的最后一个getchar语句 这样执行循环不是每次读取完一个字符之后都要重新输入数据的吗?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网