Ecco come ho fatto, per fare in modo che mi dica quanti caretteri ho battuto alla fine.
adesso funziona come volevo, praticamente ti dici quanti caretteri hai scritto prima che si battesse Invio.codice:#include <stdio.h> //in stdio.h EOF è di default -1 main() { double nc; int chara; nc=0; for (chara = getchar(); chara != '\n'; chara = getchar()) { ++nc; } printf("Hai battuto %.0f caratteri\n", nc); getchar(); }
se invece volessi fare che il programma ti dice quanti caratteri hai battuto prima di scrivere as esempio "a", ho cambiato così;
se non ce lo mettessi, il programma appena batto a non fa nulla e non esegue la riga del printf, e se premo Invio esegue l'ultima riga e chiude il programma.codice:#include <stdio.h> //in stdio.h EOF è di default -1 main() { double nc; int chara; nc=0; for (chara = getchar(); chara != 'a'; chara = getchar()) { ++nc; } getchar(); printf("Hai battuto %.0f caratteri\n", nc); getchar(); }
Come mai?
Infine, se invece mettessti la condizione != EOF il programma si chiude direttamente nel momento in cui premo Ctrl+C (corrispondente a EOF) e quindi non eseguirà mai le ultime righe.
Come mai nel manuale originale del C allora hanno inserito questa condizione?

Rispondi quotando