Я пробираюсь через 2-е издание K & R, и меня озадачил этот, казалось бы, простой пример:
#include <stdio.h>
main(){
double c;
for(c = 0; ((getchar() != EOF) && (getchar() != '\n')); ++c)
;
printf("%.0f\n",c);
}
Это просто не работает правильно. Я добавил в часть (getchar() != '\n')
, чтобы завершить программу, когда нажимаю клавишу ввода, но это действительно тоже не поможет.
Ниже приведен пример вывода с использованием gcc
, поставляемого с инструментами разработки Mac OSX 10.6.
pool-000:Desktop user$ ./a.out
a
0
pool-000:Desktop user$ ./a.out
asdf
2
pool-000:Desktop user$ ./a.out
asfasf
3
Так что что-то явно не так. Я на странице 18, если это поможет. Это не домашняя работа, это для развлечения!
Спасибо :)