C Fájlkezelés
A fájl nagy mennyiségű tartós adat tárolására használható. Sok más nyelvhez hasonlóan a C is a következő fájlkezelési funkciókat biztosítja,
- fájl létrehozása
- fájl megnyitása
- fájl olvasása
- Írás fájlba
- Fájl bezárása
Az alábbiakban a legfontosabb fájlkezelési funkciók érhetők el a “C” fájlban.
függvény | cél |
fopen () | Fájl létrehozása vagy meglévő fájl megnyitása |
fclose () | Fájl bezárása |
fprintf () | Adattömb írása fájlba |
fscanf () | Egy fájl olvasása adatok blokkolása egy fájlból |
getc () | Egyetlen karakter olvasása egy fájlból |
putc () | Egyetlen karaktert ír egy fájlba |
getw () | Egész számot olvas ki egy fájlból |
putw () | Egész szám írása fájlba |
fseek () | A fájlmutató helyét meghatározott helyre állítja |
ftell () | A fájlmutató |
visszatekerés () | A fájlmutatót a fájl elején állítja be |
Ebben az oktatóanyagban megismerheti-
- fájl létrehozása
- Fájl bezárása:
- Írás fájlba
- fputc () Funkció:
- fputs () Funkció:
- fprintf () Funkció:
- Adatok olvasása egy fájlból
- Interaktív fájl olvasása és írása a getc és a putc használatával
Fájl létrehozása
Amikor egy fájllal szeretne dolgozni, az első lépés egy fájl létrehozása. A fájl nem más, mint egy hely a memóriában, ahol adatokat tárolnak.
Fájl létrehozásához a “C” programban a szintaxist követve
FILE *fp;fp = fopen ("file_name", "mode");
A fenti szintaxisban a fájl egy adatstruktúra, amelyet a szabványos könyvtár határoz meg.
A fopen egy szabványos függvény, amelyet egy fájl megnyitására használnak.
- Ha a fájl nincs a rendszeren, akkor létrejön, majd megnyílik.
- Ha egy fájl már van a rendszeren, akkor közvetlenül megnyílik használja ezt a függvényt.
Az fp egy fájlmutató, amely a típusú fájlra mutat.
Amikor megnyit egy fájlt, vagy létrehoz egy fájlt, meg kell határoznia, hogy mit fog kezdeni a fájllal. A “C” programozású fájl létrehozható vagy megnyitható olvasási / írási célokra. A mód segítségével meghatározható, hogy az alábbiakban megadott célokból meg akarja-e nyitni a fájlt. Az alábbiakban bemutatjuk a “C” programozás különféle módjait, amelyek egy fájl használatakor használhatók.
Fájl mód | Leírás |
r | Nyisson meg egy fájlt olvasásra. Ha egy fájl olvasási módban van, akkor az adatok nem kerülnek törlésre, ha egy fájl már van a rendszeren. |
w | Nyisson meg egy fájlt írásra. Ha egy fájl írásmódban van, akkor új fájl jön létre, ha egy fájl egyáltalán nem létezik. Ha egy fájl már van a rendszeren, akkor a fájlban lévő összes adat csonkolva van, és megnyitásra kerül az íráshoz. |
a | Nyissa meg a fájlt függelék módban. Ha egy fájl függelék módban van, akkor a fájl megnyílik. A fájl tartalma nem változik. |
r + | az elejétől kezdve olvasható és írható |
w + | nyitott olvasásra és írásra, fájl felülírása |
a + | nyitva olvasásra és írásra, fájlhoz csatolás |
Az adott szintaxisban a fájlnév és az üzemmód karakterláncként van megadva, ezért mindig dupla idézőjelek közé kell tenni őket.
Példa:
#include <stdio.h>int main() {FILE *fp;fp = fopen ("data.txt", "w");}
Kimenet:
A fájl ugyanabban a mappában jön létre, ahová elmentette a kódot .
Megadhatja a fájl létrehozásának elérési útját
#include <stdio.h>int main() {FILE *fp;fp = fopen ("D://data.txt", "w");}
Fájl bezárása
Mindig be kell zárni egy fájlt, ha a fájlon végzett műveletek véget érnek. Ez azt jelenti, hogy a fájl tartalma és linkjei megszűnnek. Ez megakadályozza a fájl véletlen károsodását.
A “C” az fclose függvényt biztosítja a fájl bezárási művelet végrehajtásához. Az fclose szintaxisa a következő,
fclose (file_pointer);
Példa:
FILE *fp;fp = fopen ("data.txt", "r");fclose (fp);
Az fclose függvény argumentumként egy fájlmutatót vesz fel. A fájlmutatóhoz társított fájlt ezután az fclose függvény segítségével bezárják.0-t ad vissza, ha a bezárás sikeres volt, és EOF-t (a fájl vége), ha hiba történt a fájl bezárása közben.
A fájl bezárása után ugyanaz a fájlmutató más fájlokkal is használható.
A “C” programozásban a fájlok automatikusan bezáródnak, amikor a program leáll. A fájl manuális bezárása az fclose függvény megírásával jó programozási gyakorlat.
Írás fájlba
A C fájlban, amikor fájlba ír, kifejezetten hozzá kell adni a \ n “új” karaktereket.
Az stdio könyvtár a fájlba íráshoz szükséges funkciókat kínálja:
- fputc (char, file_pointer): Karaktert ír a fájlba, amelyre a file_pointer mutat.
- bemenetek (str, file_pointer): Karaktersorozatot ír a fájlhoz, amelyet a file_pointer mutat.
- fprintf (file_pointer, str, variable_lists): Karaktersorozatot nyomtat a fájlra, amelyre a file_pointer mutat. A karakterlánc opcionálisan tartalmazhat formátummeghatározókat és a változó_listák változóinak listáját.
Az alábbi program megmutatja, hogyan kell írni egy fájlba:
fputc () Funkció:
Kimenet:
A fenti program egyetlen karaktert ír az fputc_test.txt fájlba, amíg el nem éri a következő “\ n” sor szimbólumot, amely azt jelzi, hogy a mondatot sikeresen megírták. A folyamat az, hogy vegyük a tömb minden karakterét és beírjuk a fájlba.
- A fenti programban létrehoztunk és megnyitottunk egy fájlt fputc_test.txt nevet írási módban, és deklaráljuk a fájlba beírandó karakterláncunkat.
- Karakterenként írási műveletet hajtunk végre a ciklushoz, és minden karaktert a fájlunkba helyezünk, amíg a “\ n “karaktert találunk, majd a fájlt az fclose függvény segítségével lezárjuk.
fputs () Funkció:
OUTPUT:
- A fenti programban létrehoztunk és megnyitottunk egy fájlt az fputs_test.txt nevű fájlban írási módban.
- Miután három különböző karakterláncot írtunk egy írási műveletre az fputs () függvény használatával
- Ezután a fájlt az fclose függvény segítségével lezárjuk.
fprintf () Funkció:
OUTPUT:
- A fenti programban létrehoztunk és megnyitottunk egy fprintf_test.txt nevű fájlt írási módban.
- Miután az fprintf () függvény használatával írási műveletet hajtott végre egy karakterlánc megírásával, akkor a fájlt az fclose függvény segítségével lezárjuk.
Adatok olvasása egy fájlból
Három különböző funkció van az adatok fájlból történő olvasására.
- fgetc (file_pointer): A fájl következő mutatóját adja vissza, amelyre a fájlmutató mutat. Amikor elérte a fájl végét, az EOF-t visszaküldi.
- fgets (buffer, n, file_pointer): n-1 karaktert olvas ki a fájlból, és a karakterláncot egy pufferben tárolja, amelyben a NULL “\ 0” karaktert utolsó karakterként csatolják.
- fscanf (file_pointer, conversion_specifiers, variable_adresses): Az adatok elemzésére és elemzésére szolgál. Karaktereket olvas ki a fájlból, és a bemenetet a változó címek változó mutatók listájához rendeli konverziós specifikátorok segítségével. Ne feledje, hogy mint a scanf esetében, az fscanf is abbahagyja a karakterlánc olvasását, ha szóköz vagy új sor kerül. Az fgetc () függvényei:
Eredmény:
- A fenti programban megnyitottuk az “fprintf_test.txt” nevű fájlt, amelyet korábban az fprintf () függvény segítségével írtunk, és amely tartalmazza a “C tanulását Guru99-vel” karakterláncot. A fgets () függvény segítségével olvastuk el, amely soronként olvassa el, ahol a puffer méretének elegendőnek kell lennie az egész sor kezeléséhez.
- Újra megnyitjuk a fájlt, hogy a mutatófájl visszaálljon a fájl. Hozzon létre különféle karakterlánc-változókat az egyes szavak külön kezeléséhez. A változók kinyomtatásával megtekintheti azok tartalmát. Az fscanf () főleg az adatok kinyerésére és elemzésére szolgál egy fájlból.
- Nyissa meg újra a fájlt, hogy a mutatófájl visszaálljon a fájl elejére. Olvassa el az adatokat, és nyomtassa ki fájlból karakterenként, a getc () függvény használatával, amíg az EOF utasítás meg nem jelenik.
- Miután egy olvasási műveletet hajtott végre különböző változatokkal, ismét bezártuk a fájlt az fclose függvény segítségével. / li>
Interaktív fájlok olvasása és írása a getc és a putc használatával
Ezek a legegyszerűbb fájlműveletek. A Getc a get karaktert, a putc pedig a put karaktert jelenti. Ez a két funkció egyszerre csak egyetlen karakter kezelésére szolgál.
A következő program bemutatja a fájlkezelési funkciókat a “C” programozásban:
Kimenet:
- A fenti programban létrehoztak és megnyitottak egy demó nevű fájlt írási módban.
- Az írási művelet végrehajtása után a fájl bezáródik az fclose függvény segítségével.
- Ismét megnyitottunk egy fájlt amely most adatokat tartalmaz olvasási módban. Egy darab ciklus végrehajtódik, amíg az eof nem található. Miután megtalálta a fájl végét, a művelet befejeződik, és az adatok a printf függvény segítségével jelennek meg.
- Az olvasási művelet végrehajtása után a fájlt az fclose függvény segítségével ismét bezárják.
Összegzés
- A fájl egy hely a memóriában, ahol adatokat tárolnak.
- “C “A programozás különféle funkciókat biztosít egy fájl kezeléséhez.
- A fájlokkal való manipuláció mechanizmusát fájlkezelésnek hívják.
- A fájlokat meg kell nyitni, mielőtt a műveleteket végrehajtanák rajta.
- A fájl olvasási, írási vagy csatolási módban nyitható meg.
- A Getc és a putc függvényekkel egyetlen karakter olvasható és írható.
- Az fscanf () függvény lehetővé teszi az adatok olvasását és elemzését egy fájlból.
- Egy teljes fájlt olvashatunk (a getc függvény segítségével) azáltal, hogy az összes fájlt lefedjük, amíg az EOF-t meg nem találjuk.
- Írhatunk egy fájlba, miután létrehoztuk a nevét, az fprintf () függvény használatával, és rendelkeznie kell a newl ine karakter a karakterlánc végén.