Bináris fájl létrehozása (C)?
Elvileg, ha szövegesen írunk valamit fájlba, akkor a karakterek ASCII kódjai kerülnek oda, ha binárisan, akkor pedig bájtokat írunk.
a bináris fájlokat is .txt-be kell írni? vagy mibe?
int x = 65;
FILE* f = fopen("binaris.txt", "wb");
write(&x, sizeof(int), 1, f);
ez a kód egy 'A' betűt ír a fájlba (65 az A ascii kódja), de nem bájtokat kéne így? 65 0 0 0, mert 65 = 65 + 0*256 + 0*65536 + 0*16777216?





1) A C nyelv szabványa csak annyit mond, hogy a char 1 bájt. A többi adattípus méretéről nem rendelkezik.
2) Minden fájl bináris. A program teszi a bináris adatot ember számára értelmezhetővé. Szóval, ha Jegyzettömbben nyitod meg, igen, egy A betűt fogsz látni. Használj HxD-t vagy bármilyen más hex editort.
3) Az fwrite ereje abban rejlik, hogy egy általad megadott memóriaterületet fáljba ír. Szóval több értelme van egy tömbön vagy struct-on kipróbálni, majd fread-del visszaolvasni.










A .txt az csak egy kiterjesztés, az írsz bele amit akarsz.
A létrehozott fájlod egy 4 bájt hosszú. Az első byte értéke 65, azaz hexa 41, a többié 0. Ha megnyitod notepaddel, akkor az szöveges fájlként fogja értelmezni és A betűt mutat, mert annak az ASCII kódja 65.
Ha jól értem, azt vártad, hogy ha Notepaddal megnyitod, akkor a "65 0 0 0" szöveget fogod látni. Ennek semmi értelme a fentiek miatt.
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!