Az EOF (end of file) egy whitespace vagy egy karakter?










Mindkettő, whitespace is meg karakter is.
Unprintable karakter, ahogy pl. a soremelés, vagy a TAB is.





Ahogy a fenti linkben is említik: Az EOF egy érték, de nem karakter, nem azonos a 255-ös karakterrel.
Ha megnézed, a getchar() int típust ad vissza. Ez akár még fura is lehetne, hiszen amúgy karaktereket ad vissza. Épp azért int a típusa, hogy a 255-ös karaktert meg lehessen különböztetni az EOF-tól, vagyis a -1 től.
karakter:
-1 / 0xff:
11111111
int (32 bites rendszeren):
-1 / 0xffffffff:
11111111 11111111 11111111 11111111










Nem megy ez neked 6/7.
A whitespace NEM EGY karakter, hanem több. Ugyanis gyűjtőfogalom.
Az EOF meg éppen úgy karakter (bizonyos jelentéstartalomban) mint ahogy pl. a sorvége karakter is az, vagy a terminál vezérlő karakterek. Ezeket tetszés szerint határozzák meg, a sorvég a linux esetében LF (line feed), a windows esetében pedig LF és CR (linefeed+carriage return).
Na, ilyen a file végét jelző karakter is.





húbm... :D
8, Ennek olvasgass még utána, rád fér.
"Az EOF egy absztrak fogalom, az a jelenség, hogy az input végére értünk.
A gyakorlatban ez jelentheti azt, hogy pl. egy olvasott fájl végére
értünk, azt, hogy a klaviatúra input befejeződött (amit pl. UNIX
rendszerekben a <ctrl+D> , Windows-on a <ctrl+Z> jelez), vagy pl egy
hálózati kapcsolat túlsó felén close()-t mondtak, stb.
Mindig az adott programozási nyelv dönti el, hogy ezt az információt
hogyan továbbítja a program felé. Pascal-ban pl. az eof() függvény ad
igazat, ha elértünk az input végére.
C-ben és C++-ban a különböző függvények más-más módon jelzik az eof-ot.
Az fgets pl. NULL-t ad vissza, a scanf() a beolvasott elemeket, ha ez
nulla, akkor annak az egyik oka lehet az eof, az fread() hasonlóan
működik.
A getchar() ill. fgetc() int-eket ad vissza, ami vagy a beolvasott
karakter (legtöbbször ASCII) kódja, vagy egy speciális érték, ami minden
"normális" karakter kódjától különbözik: ez az EOF, ami az stdio.h-ban
definiált makró érték.
üdv
gsd"
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!