Что это делает: while ((c = getchar ())! = ‘\ N’ & amp; c! = EOF);

while((c= getchar()) != '\n' && c != EOF);

Я столкнулся с проблемой при использовании get () для ввода строк. Я обнаружил в Google, что он сохраняет значение ‘\ n’ во входном буфере. Я искал здесь и нашел приведенный выше код, чтобы решить мою проблему. Однако я не совсем понимаю это. Что это делает ?? Кто-нибудь, пожалуйста, просветите меня.

-3

Решение

Присвоение в C ++ также даст присваиваемое значение. Так c= getchar() читает следующий символ из файла, и (c= getchar()) != '\n' сравнивает этот прочитанный символ с символом новой строки. Есть еще один тест для специального EOF значение, чтобы убедиться, что он не пытается читать, как только вы достигнете конца файла.

Там нет заявления между while и заключительная точка с запятой, потому что больше ничего не нужно делать, вы отбрасываете ввод.

3

Другие решения

Код вводит while-loop. Его условие выхода назначает целое число c значение, которое getchar() возвращает и проверяет, равен ли он символу новой строки ('\n') или же EOF, Если это так, цикл завершается. Если это не так, извлекается следующий символ и так далее.

Код в основном пропускает все символы до следующей новой строки или EOF достигнуто Это эквивалентно:

for (;;)
{
c = getchar(); // c has been declared elsewhere
if (c == '\n' || c == EOF)
break;
}
2

По вопросам рекламы [email protected]