Эта программа не печатает мне символы
Это не будет. Вы не добавили никаких заявлений на номер print.
Я обнаружил, что я застрял в бесконечном в то время как петле
Если вы не ударилинарушения состояния, вы будете в курсе. Чтобы выйти из цикла, вы должны получить EOF
. использовать
- CTRL + Z (на окнах)
- CTRL + D (на Linux)
Теперь решения:
getchar()
не будет печатать значения. Вы должны сохранить значения и напечатать явно (если хотите), возможно, putchar()
.
Вы либо поставить EOF
или изменить разрушающее состояние while()
, чтобы выйти из существенного бесконечного цикла в противном случае.
Помимо вопросов кодирования, вы должны думать о логике, тоже. В настоящей форме код, getchar()
, считается новой линией (\n
) в качестве действительным номером. Чтобы объяснить, ввод в виде
$ ./a.из ENTER
ENTER
с ENTER
д ENTER
е ENTER
г ENTER
CTRL +D
даст результат
но это не то, что мы обычно называем подсчетом характер. Вы можете также рассмотреть эту часть логики.
Таким образом, рекомендуемая подпись main()
- int main(void)
.
Попробуйте использовать: 'while (getchar()! = '\ N')'. Помните, что 'getchar()' не заканчивается, пока вы не отправите ввод ('\ n'). –