Kezdőoldal » Számítástechnika » Programozás » Az EOF (end of file) egy...

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

Figyelt kérdés
2020. nov. 18. 20:52
 1/10 anonim ***** válasza:
30%
igen
2020. nov. 18. 21:02
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:
82%
Egyik sem.
2020. nov. 18. 21:24
Hasznos számodra ez a válasz?
 3/10 anonim ***** válasza:
61%
Operációs rendszer és környezet függő. Eredetileg az EOF jelet még a mágnesszalagos tárolásnál találták ki (eredetileg). Pl. az EM karaktert használták (ASCII 25 0x19), de ez sosem volt egységes. Valahogy meg kellett jelölni, hogy hol a fájl vége. Ekkoriban még nem volt TOC (és hasonló megoldás), de kellett tudni, hogy hol a vége fájlnak. Aztán ez valamilyen formában megmaradt.
2020. nov. 18. 21:31
Hasznos számodra ez a válasz?
 4/10 anonim ***** válasza:
61%

Mindkettő, whitespace is meg karakter is.

Unprintable karakter, ahogy pl. a soremelés, vagy a TAB is.

2020. nov. 18. 21:48
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:
2020. nov. 19. 10:58
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:

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

2020. nov. 20. 16:38
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:
Amúgy a whitespace is egy karakter, de az EOF egyik sem.
2020. nov. 20. 16:45
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:

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.

2020. nov. 20. 17:50
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:

húbm... :D

8, Ennek olvasgass még utána, rád fér.

2020. nov. 21. 02:38
Hasznos számodra ez a válasz?
 10/10 A kérdező kommentje:

"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"

2020. nov. 22. 14:37

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!