鱼C论坛

 找回密码
 立即注册
查看: 3012|回复: 7

getchar()函数和do~while语句中的表达式

[复制链接]
发表于 2019-9-26 19:01:44 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问一下,如图的代码是什么意思,getchar()函数放在while括号里面表示的是什么意思?
请求大家的帮忙解答,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2019-9-26 19:02:20 From FishC Mobile | 显示全部楼层
补图
Screenshot_2019_0926_185711.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-26 19:31:00 | 显示全部楼层
getchar() != '\n'  的意思是 获取 字符   '.'     不会结束循环吧?
还是说 getchar()   是读取下一位 字符     12.3   把这个小数点 '.'    隔开读取下一位数字?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-26 19:37:04 | 显示全部楼层
本帖最后由 YiMingC 于 2019-9-26 19:38 编辑

你可以参考一下这篇文章[函数快查] scanf -- 格式化输入

文中提到scanf的返回值:

“如果函数调用成功,返回值是成功获取并填充到附加参数中的个数。

如果函数调用失败,返回值小于附加参数的个数(甚至是 0)。

如果读取到标准输入流的结尾处,则返回 EOF。”

这里do..while作为一个出口判断,判断条件是读取的内容必须既不是换行符,又要有数据,才会再次循环,目的就是为了把输入的数据读取完全,并累次相加。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-27 00:38:06 | 显示全部楼层
画载舟中 发表于 2019-9-26 19:31
getchar() != '\n'  的意思是 获取 字符   '.'     不会结束循环吧?
还是说 getchar()   是读取下一位 字 ...

do...wile(getchar() != '\n' && status == 1);   
这里面   gerchar() != '\n'   是这次循环遇到回车   '\n'     结束这次循环    如果没有 你只要输出整数(浮点数) 它就无限循环  除非    status != 1    才会结束
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-27 10:37:10 | 显示全部楼层

有全部程序吗?一部分不太好判断。
这个程序能正确运行吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-27 10:51:21 From FishC Mobile | 显示全部楼层
满足输入的字符是  回车   且status等于1执行循环体,getchar()是输入字符直到按回车才有返回,例如输入,abcd回车,回车后即开始返回,(与while里的回车不是一回事),然后逐个循环,直到回车(即while里的回车)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-9-27 10:52:23 From FishC Mobile | 显示全部楼层
!=  是不等于,说错了,第一句
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-4 11:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表