Не происходит выход из цикла - C (СИ)
Формулировка задачи:
Доброе время суток, давече сел за изучение С.
Возникла проблема, есть следующий код:
Как я понял изпрочитанного в книге - символы должны вводиться и выводиться до тех пор, пока не будет введен 0, после этого должен произойти выход из цикла.
Собственно выхода не происходит - я негодую. Прошу помощи, уважаемые.
#include <stdio.h>
main()
{
int c;
while ((c = getchar()) != 0)
{
putchar(c);
}
}Решение задачи: «Не происходит выход из цикла»
textual
Листинг программы
while (c = getchar() != 0)
Объяснение кода листинга программы
В этом коде выполняется следующее:
cобъявляется как переменная типаchar.- В цикле
whileвыполняется операцияgetchar(), которая возвращает следующий символ из стандартного ввода. - Результат операции
getchar()сравнивается с нулем. Если он не равен нулю, то это означает, что был введен символ. - Если символ не равен нулю, то он присваивается переменной
c. - Цикл продолжается, пока
cне будет равно нулю, что означает конец ввода. - Если
cравно нулю, то цикл завершается. В общем, этот код читает символы из стандартного ввода, пока не будет введен ноль, и сохраняет каждый символ в переменнойc.