Originariamente inviato da Alì Babà
#include <stdio.h> //in stdio.h EOF è di default -1
main()
{
double nc;

for (nc = 0; getchar() != EOF; ++nc)
;
printf("%.0f\n", nc);
getchar();
}

In un programmino del genere, in teoria doveva contare i caretteri battuti diversi da EOF, quindi il ciclo termina quando viene battuto EOF (ho usato Ctrl+C, Ctrl+Z non funzionava).

In pratica però alla pressione di Ctrl+C si chiude il file (e giustamente credo, avendo battuto EOF) quindi le righe dopo non vengono eseguite, senza che venga dato in output il numero di caretteri battuti.
Leva assolutamente quel ; dopo il for...

Ricompila ed esegui il programma come di seguito...

codice:
#include <stdio.h> 
main(){
    
double nc;
    
    for (nc = 0; getchar() != EOF; ++nc)
     printf("%.0f\n", nc);
    
getchar();
}