1091625004 发表于 2019-9-26 19:01:44

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

请问一下,如图的代码是什么意思,getchar()函数放在while括号里面表示的是什么意思?
请求大家的帮忙解答,谢谢!

1091625004 发表于 2019-9-26 19:02:20

补图

画载舟中 发表于 2019-9-26 19:31:00

getchar() != '\n'的意思是 获取 字符   '.'   不会结束循环吧?
还是说 getchar()   是读取下一位 字符   12.3   把这个小数点 '.'    隔开读取下一位数字?

YiMingC 发表于 2019-9-26 19:37:04

本帖最后由 YiMingC 于 2019-9-26 19:38 编辑

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

文中提到scanf的返回值:

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

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

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

这里do..while作为一个出口判断,判断条件是读取的内容必须既不是换行符,又要有数据,才会再次循环,目的就是为了把输入的数据读取完全,并累次相加。

画载舟中 发表于 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    才会结束

Black.Watch 发表于 2019-9-27 10:37:10

1091625004 发表于 2019-9-26 19:02
补图

有全部程序吗?一部分不太好判断。
这个程序能正确运行吗

1402210873 发表于 2019-9-27 10:51:21

满足输入的字符是回车   且status等于1执行循环体,getchar()是输入字符直到按回车才有返回,例如输入,abcd回车,回车后即开始返回,(与while里的回车不是一回事),然后逐个循环,直到回车(即while里的回车)

1402210873 发表于 2019-9-27 10:52:23

!=是不等于,说错了,第一句
页: [1]
查看完整版本: getchar()函数和do~while语句中的表达式