if (scanf("%s", word) != 1) break;
scanf
возвращает количество успешно использованных предметов. Это значение используется в качестве левого операнда внутри выражения. Таким образом, это выражение совершенно верно.
В следующем примере это значение должно быть 1
, если не произошла ошибка ввода-вывода и строка была успешно преобразована, потому что есть только один элемент для потребления.
Полагаю, этот оператор if
является частью al oop, целью которого является чтение последующих слов из ввода, пока он не встретит состояние EOF
для stdin
или любой перенаправленный файл, используемый в качестве ввода, поскольку только тогда условие оценивается как true
(и с этим для выхода из окружения l oop), если EOF
или другая ошибка I/O
произошла, поскольку scanf()
возвращает 0
в этом случае.
Это даст вам представление о том, как это if
утверждение должно быть оценено и интерпретировано.