Почему в цикле while после сканирования a -1? - PullRequest
0 голосов
/ 29 марта 2019

Я не знаю, почему после scanf () есть> -1!

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;

1 Ответ

0 голосов
/ 29 марта 2019

В случае успеха scanf возвращает количество успешно назначенных аргументов. Если в MATCHING происходит сбой до назначения первого аргумента, scanf возвращает 0 и если сбой INPUT происходит до назначения первого аргумента, возвращается EOF. А теперь ответ на ваш вопрос: EOF расширяется до -1, поэтому ваш while - это что-то вроде while («нет ошибки ввода в scanf ()» && ....).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...