(ch == getchar())
Вы используете ==
вместо =
.
==
используется как логический оператор для проверки того, равен ли левый операнд правому.
Таким образом , l oop никогда не завершится, потому что вы сравниваете 0
или 1
(что является результатом (ch == getchar())
с \n
, значение ASCII которого равно 10
.
Вот что ошибка говорит.
=
используется для назначения и требуется для присвоения символа, полученного getchar()
, ch
.
Это исправленная версия:
while ((ch = getchar()) != '\n') {
if (i < n)
str[i++] = ch;
}