Fájl I / O C programozásban példákkal

Ebben az útmutatóban megtudhatjuk, hogyan lehet bemeneti / kimeneti (I / O) műveleteket végrehajtani egy fájlon a C programozási nyelv használatával.

C fájl I / O – Tartalomjegyzék

1. Fájl megnyitása
2. Fájl olvasása
3. Fájl írása
4. Fájl bezárása
5. Húrok olvasása és írása fájlba
6. Bináris fájlok olvasása és írása C-ben

Mielőtt minden műveletet részletesen átbeszélnénk, készítsen egy egyszerű C programot:

Egy egyszerű C program a fájl megnyitására, olvasására és bezárására

A fenti programban newfile.txt fájlt nyitunk meg r módban, beolvassuk a fájl tartalmát és megjelenítjük a konzolon. lehetővé teszi az egyes műveletek részletes megértését:

Fájl megnyitása

fopen() függvény egy fájl megnyitására szolgál.
Szintaxis:

FILE pointer_name = fopen ("file_name", "Mode");

pointer_name bármi lehet választás.
file_name a megnyitni kívánt fájl neve. Itt adja meg a teljes elérési utat, például: “C: \\ myfiles \\ newfile.txt”.

A fájl megnyitása során meg kell adnia az üzemmódot. A fájl olvasására használt mód “r” ”, Amely” csak olvasható mód “.
például:

FILE *fp;fp = fopen("C:\\myfiles\\newfile.txt", "r");

Az első karakter címe a következőben van tárolva: pointer fp.

Hogyan ellenőrizhető, hogy a fájl sikeresen megnyílt-e?
Ha a fájl nem nyílik meg sikeresen, akkor a mutatóhoz NULL értéket rendelünk, így így írhatja a logikát :
Ez a kód ellenőrzi, hogy a fájl sikeresen megnyílt-e. Ha a fájl nem nyílik meg, akkor hibaüzenetet jelenít meg a felhasználó számára.

..FILE fpr;fpr = fopen("C:\\myfiles\\newfile.txt", "r");if (fpr == NULL){ puts("Error while opening file"); exit();}

Különböző fájlmegnyitási módok:

A fájl megnyitása a fopen() függvény használatával történik, míg megnyitáskor a következő módok bármelyikét használhatja a követelményeknek megfelelően.
“r” mód: Ez csak olvasható mód, ami azt jelenti, hogy ha a fájlt r módban nyitják meg, akkor nem teszi lehetővé a tartalom írását és módosítását. Amikor a fopen() sikeresen megnyit egy fájlt, akkor a fájl első karakterének címét adja vissza, különben NULL értéket ad vissza.

“w” mód: Ez egy írás csak mód. A fopen() függvény új fájlt hoz létre, ha a megadott fájl nem létezik, és ha nem sikerül megnyitni a fájlt, akkor NULL értéket ad vissza.

Mode ” a ”: Ennek a módnak a használatával a tartalom egy meglévő fájl végén csatolható. A “w” módhoz hasonlóan a fopen() új fájlt hoz létre, ha nem létezik fájl. A sikertelen megnyitáskor a NULL értéket adja vissza.
A fájlmutató a fájl utolsó karakterére mutat: .

“r +” mód: Ez az üzemmód megegyezik az “r” móddal; azonban különféle műveleteket hajthat végre az ebben a módban megnyitott fájlon. Engedélyezheti a fájl tartalmának olvasását, írását és módosítását r + módban megnyílt.
A File Pointer a fájl első karakterére mutat.

“w +” mód: Ugyanaz, mint a “w” mód, kivéve az elvégezhető műveleteket; a fájl ebben a módban olvasható, írható és módosítható.
“a +” mód: Ugyanaz, mint az “a” mód; olvashatja és csatolhatja a fájl adatait, azonban a tartalom módosítása ebben a módban nem megengedett.

Fájl olvasása

A fájl elolvasásához először meg kell nyitnunk bármelyik fájlt a módból, például ha csak a fájlt akarja elolvasni, akkor nyissa meg “r” módban. A fájlnyitás során kiválasztott mód alapján engedélyezhetjük bizonyos műveletek végrehajtását a fájlon.

C Program fájl olvasására

fgetc (): Ez a függvény beolvassa a karaktert az aktuális mutató helyzetéből, és a sikeres olvasás után a mutatót a fájl következő karakterére mozgatja. Amint a mutatók a fájl végére érnek , ez a függvény visszaadja az EOF-ot (a fájl vége). A programunkban az EOF-et használtuk a fájl végének meghatározásához.

Írás fájlba

A fájl megírásához meg kell nyitnia a fájlt az írást támogató módban. Például, ha egy fájlt “r” módban nyit meg, akkor nem tudja írni a fájlt úgy, hogy az “r” írásvédett mód csak olvasást tesz lehetővé.

Példa: C Program írni a fájl

Ez a program arra kéri a felhasználót, hogy írjon be egy karaktert, és ezt a karaktert a fájl végére írja. Ha a fájl nem létezik, akkor ez a program létrehoz egy fájlt a megadott névvel, és beírja a bemeneti karaktert a fájlba.

Fájl bezárása

fclose(fp);

Az fclose () függvény a megnyitott fájl bezárására szolgál. Argumentumként meg kell adnia egy mutatót a bezárni kívánt fájlhoz.

Példa a Megnyitás, az olvasás, az írás és a bezárás műveletek megjelenítésére C-ben

Hogyan kell olvasni / írni (I / O) Karakterláncok a fájlokban – fgets & bemenetek

Itt megvitatjuk, hogyan olvassuk és írjuk a karakterláncokat egy fájlba.

char *fgets(char *s, int rec_len, FILE *fpr)

s: Karaktertömb a karakterláncok tárolására.
rec_len: A bemeneti rekord hossza.
fpr: Mutató a bemeneti fájlhoz.
Vegyünk egy példát:

Példa a karakterláncok kiolvasására egy fájlból a C programozásban

A fenti példában a fgets függvényt használtuk így:

fgets(str, 10, fpr)

Itt az str azt a karakterláncot jelöli (char tömb), amelyben tárolja a karakterláncot, miután elolvasta a fájlból.
10 a karakterlánc hossza olvassa el minden alkalommal.
Az fpr mutató fájlra, amelyet el kell olvasni.

Miért használtam az if (fgets (str, 10, fpr) == NULL logikát a vég meghatározásához a fájl?
A fenti példákban a ch == EOF-et használtuk a fájl végének megismeréséhez. Itt ezt a logikát használtuk, mert a fgets NULL értéket ad vissza, amikor már nincsenek elérhető rekordok .

C program – Karaktersorozat írása fájlba

int fputs ( const char * s, FILE * fpw );

char *s – karakter.
FILE *fpw – Mutató (FILE típusú) a fájlba, amelyet írni fogunk.

Az input két argumentumot tartalmaz –

fputs(str, fpw)

str – str a tömböt jelöli, amelyben a karakterlánc van tárolva.
fpw – FILE mutató a kimeneti fájlra, amelybe a rekordot be kell írni.

Megjegyzendő pont a bemenetekkel kapcsolatban: A
bemenetek alapértelmezés szerint nem adnak hozzá új sort az egyes rekordok írása után, hogy ezt manuálisan megtehessék – minden egyes írás után a fájlba a következő utasítás állhat be.

fputs("\n", fpw);

C FÁJL I / O bináris fájlokhoz

Eddig megtanultuk a szöveges fájlok fájlműveleteit, mi van akkor, ha a fájlok binárisak (például .exe fájl). A fenti programok nem fognak működni bináris fájlok esetén, azonban a bináris fájlok kezelésében van egy kisebb változás. A fő különbség a fájlnév & mód. Megértjük ezt egy példa segítségével. Mondjuk, hogy két bináris fájlom van: bin1.exe & bin2.exe – A bin1.exe tartalmát át szeretném másolni a bin2.exe fájlba:

Példa: Olvasás és bináris fájlok írása C

Megjegyzés: A fájlnyitási módok “rb” és “wb” az “r” & “w” helyett.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük