C 为什么在扫描F a-1之后会出现while循环?

C 为什么在扫描F a-1之后会出现while循环?,c,C,我不知道为什么在scanf()之后有一个>-1 如果成功,scanf将返回成功分配的参数数。 如果在分配第一个参数之前发生匹配失败,scanf将返回0和 如果在分配第一个参数之前发生输入失败,则返回EOF。 现在,您的问题的答案是:EOF扩展为-1,因此您的while类似于while(“scanf()中没有输入错误”)&&&…。请阅读。它正在检查scanf的返回值是否为非负。Sidenote:这段代码似乎有问题。正确的代码将检查是否完全成功==4,而不是部分成功-1@user694733这不是旁

我不知道为什么在scanf()之后有一个>-1


如果成功,scanf将返回成功分配的参数数。 如果在分配第一个参数之前发生匹配失败,scanf将返回0和 如果在分配第一个参数之前发生输入失败,则返回EOF。
现在,您的问题的答案是:EOF扩展为-1,因此您的while类似于while(“scanf()中没有输入错误”)&&&…。

请阅读。它正在检查scanf的返回值是否为非负。Sidenote:这段代码似乎有问题。正确的代码将检查是否完全成功
==4
,而不是部分成功
-1
@user694733这不是旁注。你只是谦虚,这实际上是关键的一部分。@Someprogrammerdude他们可能在循环之前就已经初始化了。在下一次
scanf
while(scanf("%f %f %f %f", &x1,&x2,&y1,&y2)>-1 && (x1!=0 && x2!=0 && y1!=0 && y2!=0) )
{
   x=x1/x2;
   y=y1/y2;