К сожалению, вам нужно будет разбить его на несколько операторов.Вы пытаетесь выполнить логическое или несколько вещей, и, учитывая, что «истина» - это «все, что не равно нулю», а символы - это просто числа, большинство из которых не равны нулю, вы в основном говорите «в то время как с не является EOF,или ИСТИНА или ИСТИНА ".
Я не совсем уверен в спецификации C, но переписать утверждение следующим образом может работать:
while((c=getchar()) != EOF && c!='\n' && c!='\0')
Это может быть неопределенным, хотя в зависимости от порядкаоценки, и это выглядит грязно.
Лучшее решение состоит в том, чтобы переместить "c = getchar ()" в другое место и вместо этого проверить значения C в заголовке while.Это означает, что вам придется переместить "c = getchar ()" как вне цикла, так и в конец тела цикла while.