EOF i C?

Tags:    c++

Jeg er igang med at lære C programmering, og er nået til et kapitel der forklarer lidt om getchar() og putchar(). Man skal lavet et program der kopiere indholdet af getchar() over i putchar(), som så bliver skrevet på skærmen, der er bla. en linie der ser sådan ca. ud:

while(c != EOF) {
osv.
osv.

Mit spørgsmål er så, hvad er det helt præcist EOF (End Of File indicator) gør?

Det synes jeg nemlig ikke at jeg kan finde ud af ved at læse kapitlet.



EOF markerer enden af filen. Med filer kommer er naturligt at den kommer til enden af filen. Hvis du læser fra keyboard skal du trykke CTRL+Z (windows) eller CTRL+D (Linux) for at lave en EOF.
getchar returnerer en EOF når den forsøger at læse ud over enden af filen.



EOF markerer enden af filen. Med filer kommer er naturligt at den kommer til enden af filen. Hvis du læser fra keyboard skal du trykke CTRL+Z (windows) eller CTRL+D (Linux) for at lave en EOF.
getchar returnerer en EOF når den forsøger at læse ud over enden af filen.


Det vil sige at EOF faktisk kun er til for at man kan afslutte en løkke?

Kunne man så ikke bare skrive:

while(!='q')

Hvad er "fordelene" ved EOF?





EOF er til for at getchar (og andre) kan fortælle at den er nået til enden af filen.
Hvis du vil slutte ved 'q' kan du naturligvis godt det, men det er ikke alle filer/streams der slutter ved 'q'
Bemærk at EOF er en int, det er den for at kunne være forskellig fra alle andre chars.



t