• Giga@hdv-tech.com
  • 24 órás online szolgáltatás:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Dokumentumolvasás és -írás

    Feladás időpontja: 2023. augusztus 11

    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.

    megnyitott fájl

    Általában az fopen () függvényt használva új fájl létrehozásához vagy 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értve int 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értve int 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 meg 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é teheti.



    web聊天