C语言输入函数scanf判断输入是否为数值问题!

while(scanf("%lf",&fahrenheit))//这是不是判断输入的是否为数值,如果是就继续循环输入,一直到输入非数值!scanf是怎么判断输入是否为数值... while(scanf("%lf",&fahrenheit)) // 这是不是判断输入的是否为数值,如果是就继续循环输入,一直到输入非数值! scanf 是怎么判断输入是否为数值的? 是scanf的返回值吗?那如果换成%s%c时输入字符他是不是也和输入数值时一样会判断是否为字符,如果输入的不是字符也和上面一样就停止了呢?求解答详细点谢谢! 展开
 我来答
wzhengsen
推荐于2016-01-11 · TA获得超过867个赞
知道小有建树答主
回答量:768
采纳率:0%
帮助的人:726万
展开全部
“这是不是判断输入的是否为数值,如果是就继续循环输入,一直到输入非数值!”:是的。
“scanf 是怎么判断输入是否为数值的?”:通过判断输入值是否和占位符类型匹配判断,如果匹配,返回匹配个数,不匹配,则函数结束,后面的占位符也不再判断。当然你这里只有一个占位符“%lf”,就只有0,1两种返回方案。

“是scanf的返回值吗?”:返回值是输入值和占位符匹配决定的。

“那如果换成%s%c时输入字符他是不是也和输入数值时一样会判断是否为字符,如果输入的不是字符也和上面一样就停止了呢?”:原理上是这样,但是占位符为“%s”时,你可以输入任意字符,因为你键盘上输入的任意字符都可以被匹配为“%s”,一串数字也可以是字符串。
whj_njit
推荐于2018-05-06 · TA获得超过230个赞
知道小有建树答主
回答量:387
采纳率:0%
帮助的人:255万
展开全部
scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
如:
scanf("%d %d",&a,&b);
如果a和b都被成功读入,那么scanf的返回值就是2
如果只有a被成功读入,返回值为1
如果a和b都未被成功读入,返回值为0
如果遇到错误或遇到end of file,返回值为EOF。
且返回值为int型.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式