EOF in C

di il
4 risposte

EOF in C

main()
   {
       int c;
       while ((c = getchar()) != EOF)
           putchar(c);
   }
Su questo codice C avrei alcune domande:
1. dal libro da cui l'ho estratto c'è un esercizio di trovare il valore di EOF, bene io lo faccio stampare con putchar o printf ma mi stampa uno spazio. cosa vale in realtà eof
2. eseguendolo ottengo che inserisco una stringa e me la ristampa, ma non dovrebbe acquisire e stampare un singolo carattere usando getchar?
Mi sono appena approcciato al libro, anche se conosco già abbastanza bene la programmazione procedurale in c++...

4 Risposte

  • Re: EOF in C

    http://en.wikipedia.org/wiki/End-of-fil
  • Re: EOF in C

    Se vai a vedere la definizione di EOF vedrai che vale -1.

    Ora -1 convertito in char vale 0xFF.

    Il carattere 0xFF viene rappresentato come uno spazio, se utilizzi il codepage classico (quello di Windows).
  • Re: EOF in C

    Mi spiegate il punto due della domanda iniziale...?
    grazie
  • Re: EOF in C

    luigibana96 ha scritto:


    mi spiegate il punto due della domanda iniziale...?
    grazie
    Non vedo il problema...
    Sai come funziona la putchar? Se si, non dovrebbe apparirti strano il suo comportamento .
    La putchar prende un carattere e lo scrive su stdout. Ma i caratteri inseriti compaiono alla fine del ciclo, tutti insieme, mica uno alla volta.
Devi accedere o registrarti per scrivere nel forum
4 risposte