C语言,请问:while循环,输入非数值时终止,怎么表示?

比如
scanf(“%f”,&y);
while(这里面写什么,能让输入的为非数值时循环终止?)
{
~~~~~~
}
谢谢回答~~

while(scanf("%f",&y)>0)
{
;
}
scanf会返回成功读取的变量个数,因此只要判断其返回值就行了,由于C语言在换行后才会读取内容,因此在换行前不会自动终止,但不会读取到非数值以后的部分即使还有数字
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-09
你是想循环一直执行不停顿,直到有键按下才对出,还是输入一个数,根据判断结果决定是否执行循环;
前者可以while(kbhit()>'0'&&kbhit()<'9')
头文件为#include<conio.h>
后者更简单,不过输入的不应该是浮点型,用字符比较好;判断其是否是0~9这十个字符即可;
while(c>'0'&&c<'9')scanf("&c"&c);追问

我是想输入一个值,是数值就执行循环,非数值就不执行循环。
谢谢回答~

追答

这样啊,那就用字符或字符串,因为这样既可以输入英文字符串,也可以输入一串数字,在来判断;其他类型的变量没办法实现

本回答被提问者采纳
第2个回答  2014-01-09
char c;
while((c=getchar())<='9'&&c>='0'){
// ...
}

相似回答