PDA

View Full Version : [C]EOF - principiante livello elementare


karlettinos
03-08-2009, 09:35
Ciao a tutti

Ho cominciato a studiare il C.

Ho scritto il seguente codice:

#include <stdio.h>

/* copia l’input sull’output; prima versione */
main()
{
int c;

c=getchar();
while (c!=EOF)
{
putchar(c);
c=getchar();
}
}

usando il terminale succede che:

1) il programma funziona correttamente
2) se voglio usare ancora il terminale, al di fuori del prgogramma, lo devo chiudere e riaprire

DOMANDA 1: Come faccio a uscire dal programma senza uscire dal terminale?

DOMANDA 2: Leggendo il testo (Kernighan) non capisco cosa rappresenta EOF : è il carattere del tasto invio?

Insomma necessito di qualche paziente e gentile delucidazione...

grazie alle anime didattiche del forum :)

K.

P.S. uso macbook leopard

^TiGeRShArK^
03-08-2009, 10:22
windows o linux?
comunque dovrebbe essere CTRL + Z

EDIT: ah ok.. mac :p ...boh.. mai scritto su mac in C puro, prova se va il CTRL + Z, altrimenti comunque con CTRL + C termini il programma....

karlettinos
03-08-2009, 11:18
windows o linux?
comunque dovrebbe essere CTRL + Z

EDIT: ah ok.. mac :p ...boh.. mai scritto su mac in C puro, prova se va il CTRL + Z, altrimenti comunque con CTRL + C termini il programma....

grazie: ok in entrambi i casi

karlettinos
03-08-2009, 11:29
windows o linux?
comunque dovrebbe essere CTRL + Z

EDIT: ah ok.. mac :p ...boh.. mai scritto su mac in C puro, prova se va il CTRL + Z, altrimenti comunque con CTRL + C termini il programma....

Per quanto riguarda la mia ipotesi su EOF = tasto invio: E' ERRATA

ho trovato una descrizione fatta apposta per quelli come a questo link:
http://www.wowarea.com/italiano/linux/linguaggioc03.htm
che cito nel caso a qualcuno possa servire
EOF=CTRL + Z, forse Tigershark voleva implicitamente rispondere anche a questa domanda.

^TiGeRShArK^
03-08-2009, 12:38
Per quanto riguarda la mia ipotesi su EOF = tasto invio: E' ERRATA

ho trovato una descrizione fatta apposta per quelli come a questo link:
http://www.wowarea.com/italiano/linux/linguaggioc03.htm
che cito nel caso a qualcuno possa servire
EOF=CTRL + Z, forse Tigershark voleva implicitamente rispondere anche a questa domanda.

Si, ctrl + z dovrebbe corrispondere a chr(21) (se non ricordo male) che indica per convenzione l'End Of File.
Ma era + di una decina d'anni che non lo usavo quindi non ero sicuro al 100%. :p

DanieleC88
03-08-2009, 16:16
Si, ctrl + z dovrebbe corrispondere a chr(21) (se non ricordo male) che indica per convenzione l'End Of File.
Sulla maggior parte dei sistemi Unix che ho visto è Ctrl + D. :)

ciao ;)

^TiGeRShArK^
03-08-2009, 18:18
Sulla maggior parte dei sistemi Unix che ho visto è Ctrl + D. :)

ciao ;)

Vero, CTRL+Z sospende il processo su *nix. :p
E comunque CTRL +Z è chr 26 non 21 come ricordavo. :p