Hogyan olvassunk el egy szöveges fájlt és nyomtassunk minden karakterláncot C-ben

Hogyan Olvassunk El Egy Szoveges Fajlt Es Nyomtassunk Minden Karakterlancot C Ben



Szövegfájl olvasása és az összes kinyomtatása húrok kulcsfontosságú feladat, amelyet gyakran a C programozók végeznek. Fontos megérteni az alapokat olvasás a szöveges fájl C-ben és hogyan kell nyomtatás a húrok a feladat elvégzése előtt.

Ebben a cikkben a szöveges fájl beolvasását és a benne található összes karakterlánc kinyomtatását a C programozással mutatjuk be.







Olvasson el egy szöveges fájlt, és nyomtassa ki az összes karakterláncot C-ben

Négy funkcióval lehet beolvasni egy szöveges fájlt és kinyomtatni az összes karakterláncot C nyelven, amelyek a következők:



1. módszer: fread() függvény

Az adatok az olvasni a fájlból és pufferben tároljuk a C függvény segítségével fread() . A tömbpuffer elemeinek megszámlálásához a fread() metódus a függvényparaméterként megadott bemeneti adatfolyamból olvas be. Az egyes karakterfüggvények beolvasásakor a megadott bemeneti adatfolyam fájlpozíciójelzője előre mozog.



A fread() metódusának a szintaxisa van.





size_t fread ( üres * array_buffer, size_t méret , size_t count, FILE * file_stream )

Nézzük meg részletesebben a fread() függvény paramétereit:



tömb puffer: Az adatok átmenetileg a számítógép pufferében, egy memóriaterületen vannak tárolva. Ez az argumentum egy mutató, amely az adatokat tartalmazó puffer memóriájában lévő helyre utal olvas a bemeneti adatfolyamból.

méret: Ez az argumentum azt a függvényt utasítja, hogy hány bájtnyi adat kerül kiolvasásra a bemeneti adatfolyamból az egyes blokkok esetében.

számol: Meghatározza, hogy az adatbeviteli folyamból hány karakter kerül beolvasásra.

file_stream: Ez egy FILE objektumra utaló mutató.

#include
#include
int fő ( ) {
FÁJL * fájlt ;
char puffer [ 100 ] ;
fájlt = fopen ( 'C_Fájl.txt' , 'r' ) ;
ha ( fájlt == NULL ) {
printf ( 'Hiba: nem sikerült megnyitni a fájlt \n ' ) ;
Visszatérés 1 ;
}
int számol =Fread ( & puffer, mérete ( char ) , 100 , fájlt ) ;
fclose ( fájlt ) ;
printf ( 'A fájlból beolvasott adatok: %s \n ' , puffer ) ;
printf ( 'Olvasott elemek száma: %d' , számol ) ;
fclose ( fájlt ) ;
Visszatérés 0 ;
}

Ebben a példában egy méretű karaktertömb puffert határozunk meg 100 felhasználás előtt fopen() a szövegfájl megnyitásához C_Fájl.txt olvasási módban. Az if utasítás segítségével meghatározzuk, hogy a fájl megnyitása sikeres volt-e. A következő lépés az, hogy olvassa el 100 bájtnyi adatot használó fájlból fread() . A célpuffer, jelen esetben a puffertömb, az első paraméter fread(). A második érv, mérete , meghatározza az egyes olvasandó elemek méretét, miközben karakterekben olvasunk . A harmadik bemenet a leolvasandó mennyiség, ami ebben az esetben az 100 . A fájl mutató a negyedik paraméter. Végül használjuk printf() a fájlból kiolvasott adatok kinyomtatására és fclose() a fájl bezárásához. A program futtatása ilyen eredményeket eredményezne, ha C_Fájl.txt :

Kimenet

2. módszer: fgets() függvény

A C nyelv fgets() metódus n karaktert olvas be az adatfolyamból az str stringbe. A fgets() metódus folytatja a karakterek beolvasását az adatfolyamból egészen addig (n-1) karakterek beolvasása megtörtént, újsor karaktert észlelt, vagy elérte a fájl végét (EOF).

#include
int fő ( ) {
FÁJL * fájlt ;
char puffer [ 100 ] ;
fájlt = fopen ( 'C_Fájl.txt' , 'r' ) ;
ha ( fájlt == NULL ) {
printf ( 'Hiba: nem sikerült megnyitni a fájlt \n ' ) ;
Visszatérés 1 ;
}
míg ( fgets ( puffer, 100 , fájlt ) ) {
printf ( 'Karakterlánc beolvasása a fájlból: %s' , puffer ) ;
}
fclose ( fájlt ) ;
Visszatérés 0 ;
}

Ez a példa azt használja fopen() nevű szövegfájl megnyitásához C_Fájl.txt olvasási módban, miután először deklarált egy méretű karaktertömb puffert 100 . Az if utasítás segítségével meghatározzuk, hogy a fájl megnyitása sikeres volt-e. Ezt követően alkalmazunk egy while hurkot és fgets() szövegsorok olvasásához a fájlból egy fájlmutató segítségével. Használata printf() a cikluson belül minden szövegsort kinyomtatunk. A program futtatása a következő kimenetet adná:

Kimenet

3. módszer: fscanf() függvény

Az úgynevezett szabványos könyvtári metódus fscanf() paraméterek tömbjét fogadja el, és átalakítja azokat olyan értékekké, amelyeket az alkalmazás használhat. Míg fájlból olvasni , akkor a formátum karakterláncát adja vissza bárminek a helyére, amelyre számítani fog. Annak elkerülése érdekében, hogy a szoftver a formátum karakterláncot saját szintaxisának részeként értelmezze, idézőjelbe kell tenni ('').

#include
int fő ( ) {
FÁJL * fájlt ;
int num1, num2, num3;
fájlt = fopen ( 'C_Fájl.txt' , 'r' ) ;
ha ( fájlt == NULL ) {
printf ( 'Hiba: nem sikerült megnyitni a fájlt \n ' ) ;
Visszatérés 1 ;
}
fscanf ( fájlt , '%d %d %d' , & szám1, & szám2, & szám3 ) ;
printf ( 'A fájlból kiolvasott számok: %d, %d, %d \n ' , num1, num2, num3 ) ;
fclose ( fájlt ) ;
Visszatérés 0 ;
}

Ez a példa megnyitja a fájlt C_Fájl.txt olvasási módban úgy, hogy először deklarál 3 int változót, a num1, num2 és num3. Az if utasítás segítségével meghatározzuk, hogy a fájl megnyitása sikeres volt-e. A következő lépés három szám beolvasása a fájlból a segítségével fscanf() és a %d formátum specifikátor. Az értékeket a num1, num2 és num3 változók tartják. Végül használjuk printf() e változók értékeinek kiadására és fclose() a fájl bezárásához. A program futtatása az alábbi eredményeket eredményezi:

Kimenet

4. módszer: fgetc() függvény

Egy fájl lehet olvas karakterről karakterre a fgetc() funkció. A függvény által beolvasott karakter ASCII-kódját adja vissza ez a függvény. A fájlmutató megadott helyéről származó karakter kerül visszaadásra. A következő karakter beolvasásra kerül, miután a karaktert beolvasták, a fájlmutatónak megfelelően. Ez a módszer egy EOF fájlt ad vissza, ha a mutató a fájl végén van, vagy ha probléma van.

#include
int fő ( ) {
FÁJL * fájlt ;
char c;
fájlt = fopen ( 'C_Fájl.txt' , 'r' ) ;
ha ( fájlt == NULL ) {
printf ( 'Hiba: nem sikerült megnyitni a fájlt \n ' ) ;
Visszatérés 1 ;
}
míg ( ( c = fgetc ( fájlt ) ) ! = EOF ) {
printf ( '%c' , c ) ;
}
fclose ( fájlt ) ;
Visszatérés 0 ;
}

Ebben az esetben a fopen() parancsot a szövegfájl megnyitásához C_Fájl.txt olvasási módban. Az if utasítás segítségével meghatározzuk, hogy a fájl megnyitása sikeres volt-e. Ezt követően alkalmazunk egy while hurkot és fgetc() karakterek beolvasásához a fájlból. A fájlból kapott karakter hozzá van rendelve a változóhoz c a hurok belsejében, mielőtt használná printf (). A hurok addig fut, amíg a EOF (Fájl vége) konstans érzékeli a fájl végét. A program futtatása a következő eredményeket kapná, ha C_Fájl.txt szót tartalmazza 'Linuxint'.

Kimenet

Következtetés

A fent vázolt lépésekkel a C használható szöveges fájlt olvasni és kinyomtatja az összes karakterláncot tartalmaz. A használattal kezdődik fopen() rendszerhívás a fájl megnyitásához, majd a használat fscanf(), fread(), fgets(), fgetc() hogy elolvassa az adatokat. Ezt követően a fájl bezárásra kerül a segítségével fclose() a for ciklus pedig a karakterláncok kinyomtatására szolgál. Ezen technikák alkalmazásával a C felhasználható az adatok hatékony olvasásához és nyomtatásához.