Прямо из K & R, у меня есть
#include <stdio.h>
main() {
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
Я нахожусь на Mac OS X, поэтому я скомпилирую его, запустите, введите «12345», нажмите ввод для новой строки (я думаю, это шестой символ), а затем нажмите Ctrl-D для отправки EOF. 1004 *
Эта вещь печатает "6D". Почему там D? Как мне написать программу, чтобы просто посчитать 5 символов в «12345», а не перевод строки? Должен ли я просто вычесть один в конце? Как мне заставить его прекратить печатать D?