c语言 if (scanf("%f",&a) != 1) 是什么意思?

如题所述

首先,你需要知道scanf("%f",&a)这个语句的返回值。scanf的返回值是它读取有效数值的数量,即如果读取到一个合法的数据,就返回1。
此处是读取一个浮点数,如果你输入时输入的是一个字母或非数值型字符,都是无效字符,即不会读取,返回值为0.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-08-04
scanf("%d %d",&a,&b);
scanf函数定义:
int scanf(const char * restrict format,...);函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;
如果只有a被成功读入,返回值为1;
如果a和b都未被成功读入,返回值为0;
如果遇到错误或遇到end
of
file,返回值为eof。
第2个回答  2017-01-17
就是
如果(未读到合法的浮点数)。
第3个回答  2017-01-17
From scanf: On success, the function returns the number of items successfully read. This count can match the expected number of readings or fewer, even zero, if a matching failure happens. In the case of an input failure before any data could be successfully read, EOF is returned.

也就是说,scanf函数执行成功,返回值是等于正确读进来的变量个数;否则,返回的可能是任意不等于正确读进来的变量个数或者EOF。

if (scanf("%f",&a) != 1) {
}

这个语句是说如果scanf函数读进的参数个数不等于1,就执行括号中的代码。追问

是不是 不是float类型就往下走的意思?

追答

输入浮点数,才算是scanf这个函数执行成功。不是否点数就就是函数scanf执行不成功,执行括号里面的内容。

本回答被网友采纳
相似回答