Для справки, я копирую этот пример (почти) букву для письма со страницы 18 в Язык программирования C, второе издание .
#include <stdio.h>
/*count characters in input, 2nd version*/
main(){
double n;
for (n = 0; getchar() != EOF; ++n)
;
printf("%.0f\n", n); /*this never prints*/
}
Я не был уверен, была ли это моя версия gcc (я нуб):
% gcc --version
gcc (Ubuntu/Linaro 4.4.4-14ubuntu5) 4.4.5
Copyright (C) 2010 Free Software Foundation, Inc.
Поскольку
for (n = 0; getchar() != EOF; ++n)
printf("%.0f",n); /*returns 0123456...n*/
Я попытался напечатать "foo" вместо значения nпросто чтобы посмотреть.Он все еще не печатает.
Что мне здесь не хватает?Я не люблю двигаться вперед, игнорируя такие мелкие проблемы.
====================================
РЕДАКТИРОВАТЬ
Таким образом, конечный результат должен быть:
% gcc ./counter.c -o ./counter
% ./counter
foo
3
Прямо сейчас это вывод из первого фрагмента:
% ./counter
foo
0123
И второй:
% ./counter
foo
^C
%