Я создал программу на своем ПК под управлением Windows XP с помощью Dev-C++ 5.11. Это тот, который я видел, как типичная программа подсчета символов и выглядит следующим образом:Программа подсчета символов не работает так, как должна
#include <stdio.h>
main() {
long nc;
nc = 0;
while (getchar() != EOF) {
++nc;
}
printf("%ld", nc);
}
Составлен без проблем, но он работает, как он должен ТОЛЬКО тогда, когда среди персонажей жму я включаю кнопку ввода (\n
) , Если я его не напечатаю 0 или ничего вообще. Я попытался включить другие символы, такие как вкладка или backspace, но все равно ничего. Я использую ctrl + c для его завершения. Что я делаю не так?
Возможный дубликат [while ((c = getchar())! = EOF) Не завершается] (http://stackoverflow.com/questions/18565663/while-c-getchar-eof-not-terminating) –
Возможно, это не работает «как должно», но работает только так, как только может, поскольку вы используете функцию getchar(), которая ждет «кнопку ввода» –
@DarkoDjuric: 'getchar()' не ждет «enter», он ожидает ввода фактического появления на 'stdin'. Эти две вещи очень разные. – DevSolar