Leírja, hogy a C programozó hogyan hoz létre, nyit meg és zár be egy szöveges vagy bináris fájlt.
A fájl bájtok sorozatát jelenti, legyen szó akár szöveges fájlról, akár bináris fájlról, C Language nem csak a legfelső szintű funkciókhoz való hozzáférést biztosítja, hanem az alapul szolgáló (OS) hívást is biztosítja a tárolóeszközön lévő fájlok feldolgozásához. .Ez a fejezet elmagyarázza a dokumentumkezelés fontos követelményeit.
fájl megnyitása
Általában az fopen () függvényt használva új fájl létrehozásához vagy egy meglévő fájl megnyitásához, ez a hívás inicializál egy FILE típusú objektumot, amely az áramlás vezérléséhez szükséges összes információt tartalmazza.Íme a függvényhívás prototípusa:
FILE *fopen ( const char * fájlnév , const char * mód );
Itt a fájlnév egy fájl elnevezésére szolgáló karakterlánc, a hozzáférési mód értéke a következő értékek egyike lehet:
minta | leírás |
r | Nyisson meg egy meglévő szövegfájlt, amely lehetővé teszi az olvasását. |
w | Nyisson meg egy szöveges fájlt, amely lehetővé teszi a fájlba való írást.Ha a fájl nem létezik, akkor új fájl jön létre.Itt a program a fájl elejétől írja a tartalmat.Ha a fájl létezik, akkor a rendszer nullára csonkolja, és újraírja. |
a | Nyisson meg egy szöveges fájlt, és hozzáfűzés módban írjon a fájlba.Ha a fájl nem létezik, akkor új fájl jön létre.Itt a program tartalmat fűz hozzá a már meglévő fájlokhoz. |
r+ | Nyisson meg egy szöveges fájlt, amely lehetővé teszi a fájl olvasását és írását. |
w+ | Nyisson meg egy szöveges fájlt, amely lehetővé teszi a fájl olvasását és írását.Ha a fájl már létezik, akkor a fájl nulla hosszúságúra csonkolódik, és ha a fájl nem létezik, akkor új fájl jön létre. |
a+ | Nyisson meg egy szöveges fájlt, amely lehetővé teszi a fájl olvasását és írását.Ha a fájl nem létezik, akkor új fájl jön létre.Az olvasás a fájl elején kezdődik, és az írás csak hozzáfűzés módban történik. |
Feldolgozott bináris fájl esetén használja a következő hozzáférési módot a fentiek cseréjéhez:
"rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"
zárt fájl
A fájl bezárásához használja az fclose() függvényt.A funkció prototípusa a következő:
int fclose ( FILE *fp );
- Ha a fájlt sikeresen lezártuk, az fclose() függvény nullát ad vissza, és ha a hiba az EOF-t adja vissza.Ez a funkció valójában eltávolítja az adatokat a pufferből, bezárja a fájlt, és felszabadítja a fájlhoz használt összes memóriát.Az EOF az stdio.h fejlécfájlban meghatározott állandó
A C szabványos könyvtár különféle funkciókat biztosít a fájlok karakterenkénti vagy rögzített hosszúságú karakterlánckénti olvasásához és írásához.
Írjon a fájlba
Íme a legegyszerűbb függvények karakterek adatfolyamba írásához:
int fputc ( int c , FÁJL *fp );
Az fputc () függvény beírja a c paraméter karakterértékét abba a kimeneti adatfolyamba, amelyre az fp mutat.Ha az írás sikeres, akkor hiba esetén visszaadja az írott karaktert és az EOF-t.A következő függvény segítségével nullára végződő karakterláncot írhat az adatfolyamba:
int fputok ( const char *s , FILE *fp );
Az fputs () függvény beírja az s karakterláncot a kimeneti adatfolyamba, ahová az fp mutat.Ha az írás sikeres, akkor nem negatív értéket ad vissza, és hiba esetén az EOF-t.Használhatja azt is, hogy az int fprintf (FILE * fp, const char * formátum,...) egy karakterláncot ír a fájlba.Próbáld ki a következő példát:
Megjegyzés: Győződjön meg arról, hogy rendelkezésre áll egy tmp-könyvtár, és ha nem létezik, először létre kell hoznia azt a számítógépén.
A / tmp általában egy ideiglenes könyvtár a Linux rendszeren.Ha Windows rendszeren fut, módosítania kell egy létező könyvtárra a helyi környezetben, például: C: \ tmp, D: \ tmp stb.
élő példa
#beleértveint main () { FÁJL *fp = NULL ;fp = fopen ("/tmp/test.txt ", "w+");fprintf (fp , "Ez az fprintf tesztelése...\n");fputs ("Ez az fputok tesztelése...\n ", fp );fclose (fp );}
A fenti kód lefordítása és végrehajtása után egy új test.txt fájlt hoz létre a / tmp könyvtárban.És két sorba ír két különböző függvény segítségével.Következőként ezt a fájlt olvassuk el.
Olvassa el a fájlt
A következő a legegyszerűbb funkció egyetlen karakter kiolvasására egy fájlból:
int fgetc ( FÁJL * fp );
Az fgetc () függvény beolvas egy karaktert a bemeneti fájlból, amelyre az fp mutat.A visszatérési érték a beolvasott karakter és az EOF hiba esetén.A következő funkció lehetővé teszi egy karakterlánc kiolvasását egy adatfolyamból:
char *fgets ( char *buf , int n , FÁJL *fp );
Az fgets () függvény n-1 karaktert olvas be az fp által irányított bemeneti adatfolyamból.Másolja az olvasási karakterláncot a puffer pufferbe, és egy null karaktert fűz a végéhez, hogy befejezze a karakterláncot.
Ha ez a függvény az utolsó karakter beolvasása előtt szaggatott sorkarakterrel vagy a fájl végének EOF-jával találkozik, akkor csak az olvasott karakterekhez tér vissza, beleértve a sortöréseket is.Használhatja az int fscanf (FILE * fp, const char * formátum,...) függvényt is a karakterlánc kiolvasására a fájlból, de az első szóköz és sortörés esetén leállítja az olvasást.
élő példa
#beleértveint main () { FÁJL *fp = NULL ;char buff [255];fp = fopen ("/tmp/teszt.txt", "r");fscanf (fp , "%s ", buff );printf ("1: %s \n ", buff );fgets (buff , 255, (FILE *)fp );printf ("2: %s \n ", buff );fgets (buff , 255, (FILE *)fp );printf ("3: %s \n ", buff );fclose (fp );}
Amikor a fenti kódot lefordítják és végrehajtják, beolvassa az előző részben létrehozott fájlokat, és a következő eredményeket adja:
1: Ez 2: az fprintf-et teszteli...
3: Ez az fputok tesztelése...
Először is, az fscanf() metódusa csak ezt olvassa, mert hátul szóközt talál.Másodszor, hívja meg a functon fgets () függvényt, hogy a maradék részt a sor végéig olvassa el.Végül hívja az fgets () parancsot a második sor teljes olvasásához.
Bináris I/O függvény
A következő két függvény használható a bináris bemenethez és kimenethez:
size_t fread (void *ptr , size_t size_of_elements , size_t number of_eles , FILE *a_file );size_t fwrite (const void *ptr , mérete_t elemek mérete , mérete_t elemek száma , FÁJL *a_file );
Mindkét függvény olvasási és írási tárolóblokkokhoz – általában tömbökhöz vagy struktúrákhoz – tartozik.
A fenti mintegy C fájl olvasása és írása a HDV Phoelectron Technology Ltd. szoftvertechnikai üzemeltetője.És a hálózattal kapcsolatos berendezéseket (például: ACONU/ kommunikációONU/ intelligensONU/ rostONU, stb.) egy erős szoftvercsapatot hozott össze, minden ügyfél számára testreszabhatja az exkluzív igényeket, akiknek szüksége van rá, és termékeinket intelligensebbé és fejlettebbé teszi.