小白不是很理解下面代码中的while那一行的作用
我认为是在scanf没有接收到函数时候就要求再次输入, 但我输入两次英文字母后,风扇就开始狂转,再输入数字也没啥用了.
int main(){
int n;
int k;
int total;
int result;
while(scanf("%d%d",&n,&k)!=EOF) //!!!!!不懂这句话
{
total=n*2;
if(n<=k){
printf("2\n");
continue;
}
result=total/k;
if(total%k!=0)
{
result++;
}
printf("%d\n",result);
}
return 0;
}
然后查到scanf的返回值是:
scanf()函数返回的值的意义为:正确按指定格式输入变量的个数;也即能正确接收到值的变量个数。
就是说正确接收值的个数。此时scanf("%d",&i)要求输入一个int数。因此只要按格式输入一个int数,结果都是1.
假如scanf("%d%d%d",&i,&j,&k)。你输入时10 20 d则scanf返回为2
于是我把这代码中的EOF改为2, 依然没用.
真的十分费解, 求帮助