Studio da poco il linguaggio C seguendo il libro di Kernighan & Ritchie
Vi posto un programma e vi espongo i miei dubbi
Il programma conta il numero di caratteri che l utente inserisce da tastiera.
Avvio il programma, digito
"casa" (senza gli apicali)
premo invio
e il programma stampa il numero 6
Prima domanda:
Vi posto un programma e vi espongo i miei dubbi
C:
#include <stdio.h>
main(){
double num_car = 0;
int c = 0;
while(c != EOF){
c = getchar();
++num_car;
}
printf("%1.0f", num_car);
}
Avvio il programma, digito
"casa" (senza gli apicali)
premo invio
e il programma stampa il numero 6
Prima domanda:
Perchè 6? 4 per le lettere di c-a-s-a, 1 per il ritorno a capo dell invio ,quindi, non dovrebbe stampare 5?
o forse il ritorno a capo conta come 2 caratteri e quindi 4+2 =6?
Seconda domanda:o forse il ritorno a capo conta come 2 caratteri e quindi 4+2 =6?
Se digito "casa" e termino il programma (stavolta senza premere invio) il programma stampa 1.
Se stampa 1 significa che num_car è 1, e quindi significa che entra nel ciclo while esattamente una volta.
Perchè (se non premo invio) entra nel ciclo while una volta sola?
Se stampa 1 significa che num_car è 1, e quindi significa che entra nel ciclo while esattamente una volta.
Perchè (se non premo invio) entra nel ciclo while una volta sola?