antiulano
2003-07-27 10:24:41 UTC
ciao a tutti
mi sto avvicinando al C studiando dal KR e usando il gcc sotto Win98
a pag.19 del KR c'è un programma che conta le linee di input, di cui riporto
la parte principale
while((c=getchar())!=EOF)
if (c=='\n')
nl++;
printf("Numero linee: %d", nl);
ora se scrivo:
asdfadsfadsfadsfa (a capo)
adsfadsfadsfadfasa (e un altro a capo)
e CTRL - Z
tutto bene. L'output è: "Numero linee: 2"
ma se scrivo:
asdfasdfadsfasfa (a capo)
asdfadsfasdfadsfsa (CTRL-Z)... pensavo che il programma dovesse terminare...
invece devo ancora...
CTRL - Z
e l'output è: Numero linee: 1...
Non mi aspettavo certo che contasse 2 linee (la condizione è c=='\n') ma che
il programma terminasse alla seconda linea.
La domanda e': Che cos'è nella seconda prova, il primo CTRL-Z ? come mai non
viene visto come un EOF???
Grazie
mi sto avvicinando al C studiando dal KR e usando il gcc sotto Win98
a pag.19 del KR c'è un programma che conta le linee di input, di cui riporto
la parte principale
while((c=getchar())!=EOF)
if (c=='\n')
nl++;
printf("Numero linee: %d", nl);
ora se scrivo:
asdfadsfadsfadsfa (a capo)
adsfadsfadsfadfasa (e un altro a capo)
e CTRL - Z
tutto bene. L'output è: "Numero linee: 2"
ma se scrivo:
asdfasdfadsfasfa (a capo)
asdfadsfasdfadsfsa (CTRL-Z)... pensavo che il programma dovesse terminare...
invece devo ancora...
CTRL - Z
e l'output è: Numero linee: 1...
Non mi aspettavo certo che contasse 2 linee (la condizione è c=='\n') ma che
il programma terminasse alla seconda linea.
La domanda e': Che cos'è nella seconda prova, il primo CTRL-Z ? come mai non
viene visto come un EOF???
Grazie