C语言输入函数scanf判断输入是否为数值问题!
while(scanf("%lf",&fahrenheit))//这是不是判断输入的是否为数值,如果是就继续循环输入,一直到输入非数值!scanf是怎么判断输入是否为数值...
while(scanf("%lf",&fahrenheit)) // 这是不是判断输入的是否为数值,如果是就继续循环输入,一直到输入非数值! scanf 是怎么判断输入是否为数值的? 是scanf的返回值吗?那如果换成%s%c时输入字符他是不是也和输入数值时一样会判断是否为字符,如果输入的不是字符也和上面一样就停止了呢?求解答详细点谢谢!
展开
2个回答
展开全部
“这是不是判断输入的是否为数值,如果是就继续循环输入,一直到输入非数值!”:是的。
“scanf 是怎么判断输入是否为数值的?”:通过判断输入值是否和占位符类型匹配判断,如果匹配,返回匹配个数,不匹配,则函数结束,后面的占位符也不再判断。当然你这里只有一个占位符“%lf”,就只有0,1两种返回方案。
“是scanf的返回值吗?”:返回值是输入值和占位符匹配决定的。
“那如果换成%s%c时输入字符他是不是也和输入数值时一样会判断是否为字符,如果输入的不是字符也和上面一样就停止了呢?”:原理上是这样,但是占位符为“%s”时,你可以输入任意字符,因为你键盘上输入的任意字符都可以被匹配为“%s”,一串数字也可以是字符串。
“scanf 是怎么判断输入是否为数值的?”:通过判断输入值是否和占位符类型匹配判断,如果匹配,返回匹配个数,不匹配,则函数结束,后面的占位符也不再判断。当然你这里只有一个占位符“%lf”,就只有0,1两种返回方案。
“是scanf的返回值吗?”:返回值是输入值和占位符匹配决定的。
“那如果换成%s%c时输入字符他是不是也和输入数值时一样会判断是否为字符,如果输入的不是字符也和上面一样就停止了呢?”:原理上是这样,但是占位符为“%s”时,你可以输入任意字符,因为你键盘上输入的任意字符都可以被匹配为“%s”,一串数字也可以是字符串。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询