Hogyan lehet szöveges fájlt olvasni C-ben

Hogyan Lehet Szoveges Fajlt Olvasni C Ben



Szöveges fájlok a számítógépeken legszélesebb körben használt fájltípusok közé tartoznak. Sokféle feladathoz használhatók, például szöveges dokumentumok vagy programforráskódok tárolására. A rendszerben vannak elmentve .txt kiterjesztés. Míg a C kódon dolgozik, előfordulhat, hogy a projekt részeként szöveges fájlt kell olvasnia, vagy segítséget kell kérnie a szövegfájlból. Ahelyett, hogy visszamenne a helyére egy szövegfájl olvasásához, jobb, ha egy kódon belül olvassa el.

Ez a cikk a szöveges fájlok C programozási nyelven történő olvasásának hasznos módjait tárgyalja.

Olvasson szöveges fájlt C-ben

Négy módszer létezik a szöveges fájlok olvasására C nyelven, amelyek a következők.







1. módszer: Az fscanf() függvény használata szöveges fájl beolvasásához C-ben

A fscanf() A függvény egy szabványos könyvtárfüggvény, amely argumentumok tömbjét veszi fel, és azokat a program által használható értékekké alakítja. Megtalálja a formátum karakterláncát a fájlban, és visszaadja a formátum karakterláncát, amikor a fájlból olvas. A formátum karakterláncot idézőjelek közé (' ') kell tenni, hogy a program ne saját szintaxisának részeként értelmezze azokat.



A fscanf() függvény beolvassa az adatokat az argumentumlista elemei által biztosított helyekre. Az argumentumlista bejegyzéseinek mind olyan változókra kell mutatniuk, amelyek típusai megegyeznek a format-string típusmeghatározóival.



Megadja az EOF-t (fájl vége), vagy a változók számát a hozzájuk rendelt értékekkel.





Nézzünk egy példát egy szövegfájl olvasására a fscanf() funkció:

#include
int fő ( )
{
FÁJL * ptr = fopen ( 'file_name.txt' , 'r' ) ;
ha ( ptr == NULL ) {
printf ( 'nincs ilyen fájl.' ) ;
Visszatérés 0 ;
}
char buf [ 100 ] ;
míg ( fscanf ( ptr, '%s' , buf ) == 1 )
printf ( '%s \n ' , buf ) ;
Visszatérés 0 ;
}

Ebben a kódban fopen() A függvény a ptr mutatóváltozó alatti fájl megnyitására szolgál. fscanf() A funkció ezután a fájl beolvasására, majd tartalmának kinyomtatására szolgál.



Kimenet

2. módszer: A fread() függvény használata szöveges fájl olvasásához C-ben

A fájl adatait a Fread() módszerrel, és pufferben tároljuk. Legfeljebb számú elemet beolvas egy tömbpufferbe a fread() függvényt a bemeneti adatfolyamból, amely függvény argumentumként kerül megadásra.

Amikor az elemek teljes száma sikeresen beolvasásra került, egy size_t objektum kerül visszaadásra. Ha ez az érték eltér a program által megadott értéktől, akkor vagy hiba történt, vagy elérte a fájl végét.

#include
int fő ( )
{
char puffer [ 33 ] ;
FÁJL * folyam;
patak = fopen ( 'file_name.txt' , 'r' ) ;
int count = fread ( & puffer, mérete ( char ) , 33 , patak ) ;
fclose ( folyam ) ;
printf ( 'A fájlból beolvasott adatok: %s \n ' , puffer ) ;
printf ( 'Olvasott elemek száma: %d' , számol ) ;
Visszatérés 0 ;
}

Ebben a kódban a fopen() funkcióval nyitható meg a fájl, majd a fread() A funkció ezután a fájl beolvasására, majd tartalmának kinyomtatására szolgál. A 33 azt mutatja, hogy hány karaktert fog kiolvasni a fájlból.

Kimenet

3. módszer: Az fgets() függvény használata szöveges fájl olvasásához C-ben

A ... val fgets() függvényében egy sor beolvasásra kerül a megadott adatfolyamból, és a megfelelő karakterlánc-változóban tárolódik. Amikor (n-1) karaktert, az újsor karaktert vagy a fájl végét olvassa be, vagy amelyik előbb következik be, a program véget ér. Ha a függvény sikeres, ugyanaz a karakterlánc kerül visszaadásra. A karakterlánc tartalma a helyén marad, és nulla mutató jelenik meg, ha a függvény eléri a Fájlvéget, és nem olvasott karaktereket.

Hiba esetén null mutatót ad.

#include
int fő ( ) {
FÁJL * fp;
char str [ 60 ] ;
fp = fopen ( 'fájl.txt' , 'r' ) ;
ha ( fp == NULL ) {
tévedés ( 'Hiba a fájl megnyitásakor' ) ;
Visszatérés ( - 1 ) ;
}
ha ( fgets ( str, 100 , fp ) ! =NULL ) {
tesz ( str ) ;
}
fclose ( fp ) ;
Visszatérés ( 0 ) ;
}

Ebben a kódban fájl.txt a fájlt megnyitja fopen() funkciót, majd fgets() A függvény ezután a fájlban lévő karakterláncok beolvasására, majd kinyomtatására szolgál. A 100 a beolvasandó karakterláncok számát mutatja.

Kimenet

4. módszer: Az fgetc() függvény használata egy szöveges fájl olvasásához C-ben

A fgtec() funkció a karakterek egyenkénti olvasására szolgál. A függvény ezután visszaadja az olvasott karakter ASCII kódját. Azt a karaktert adja vissza, amely a fájlmutató megadott helyén volt. A fájlmutató ezután a következő karakterre lép. Ha hiba történik, vagy a mutató eléri a fájl végét, ez a függvény egy EOF-t (Fájlvéget) ad vissza.

#include
int fő ( )
{
FÁJL * fp = fopen ( 'fájl.txt' , 'r' ) ;
ha ( fp == NULL )
Visszatérés 0 ;
csináld {
char c = fgetc ( fp ) ;
ha ( feof ( fp ) )
szünet ;
printf ( '%c' , c ) ;
} míg ( 1 ) ;
fclose ( fp ) ;
Visszatérés ( 0 ) ;
}

A ' fájl.txt ” fájlt nyitja meg a fopen() függvény ebben a kódban az fp mutatóváltozó alatt. Ezután a fájl karaktereit a rendszer a fgetc() módszerrel, amely kiírja az olvasott karaktereket.

Kimenet

Következtetés

A fájlok olvasása minden számítógép-felhasználó számára elengedhetetlen, és különösen egy fejlesztő számára fontos, hogy a kódja segítségével hozzáférhessen a fájlokhoz. Ezért 4 módszert említünk fent a cikkben az a szöveges fájl C nyelv használatával. fscanf() és fread() a fájlok hasonló olvasására szolgálnak, azzal az eltéréssel, hogy fread() lehetővé teszi számunkra, hogy megadjuk a felhasználó által olvasni kívánt karakterek számát, míg fgets() fájl soronkénti olvasására szolgál, és fgetc() a fájl karakterenkénti olvasására szolgál.