• Giga@hdv-tech.com
  • 24H Online tsjinst:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, dokumint lêzen en skriuwen

    Post tiid: Aug-11-2023

    Beskriuwt hoe't de C-programmeur in teksttriem of in binêre triem oanmakket, iepenet en slút.

    In bestân, betsjut in searje bytes, of it no in tekstbestân of in binêr bestân is, C Language, jout net allinich tagong ta de funksjes op it boppeste nivo, mar leveret ek de ûnderlizzende (OS) oprop om bestannen op it opslachapparaat te ferwurkjen . Dit haadstik sil de wichtige oproppen yn dokumintbehear útlizze.

    iepen-bestân

    Meastal mei help fan de fopen () funksje foar in meitsje in nij triem of iepenje in besteande triem, dizze oprop inisjalisearret in foarwerp fan it type FILE dat befettet alle nedige ynformaasje foar in kontrôle de stream. Hjir is it prototype fan dizze funksjeoprop:

    FILE *fopen (const char * triemnamme, const char * modus);

    Hjir is bestânsnamme in tekenrige om in bestân te neamen, de wearde fan 'e tagongsmodus kin ien fan' e folgjende wearden wêze:

    patroan

    beskriuwing

    r

    Iepenje in besteande teksttriem wêrmei it lêzen wurde kin.

    w

    Iepenje in teksttriem wêrmei it skriuwen nei it bestân mooglik makket. As it bestân net bestiet, wurdt in nij bestân oanmakke. Hjir skriuwt jo programma de ynhâld fan it begjin fan it bestân. As it bestân bestiet, sil it ôfkoarte wurde nei nul lingte en opnij skreaun.

    a

    Iepenje in tekstbestân en skriuw nei it bestân yn in taheakke modus. As it bestân net bestiet, wurdt in nij bestân oanmakke. Hjir foegje jo programma ynhâld ta oan de bestannen dy't jo al hawwe.

    r+

    Iepenje in tekstbestân wêrmei jo it bestân lêze en skriuwe kinne.

    w+

    Iepenje in tekstbestân wêrmei jo it bestân lêze en skriuwe kinne. As de triem al bestiet, wurdt de triem ôfkoarte ta nul lingte, en as de triem net bestiet, wurdt in nije triem oanmakke.

    a+

    Iepenje in tekstbestân wêrmei jo it bestân lêze en skriuwe kinne. As it bestân net bestiet, wurdt in nij bestân oanmakke. It lêzen begjint oan it begjin fan de triem, en it skriuwen is allinnich yn taheakke modus.

    As binêr bestân ferwurke is, brûk dan de folgjende tagongsmodus om it boppesteande te ferfangen:

    "rb", "wb", "ab", "rb+", "r+b", "wb+", "w+b", "ab+", "a+b"

    sletten triem

    Om it bestân te sluten, brûk asjebleaft de funksje fclose(). It prototype fan 'e funksje is as folget:

    int fclose (FILE *fp);

    • As de triem is sluten mei súkses, de fclose () funksje jout nul, en as de flater jout EOF. Dizze funksje ferwideret feitlik de gegevens út 'e buffer, slút it bestân en makket al it ûnthâld frij dat brûkt wurdt foar dat bestân. EOF is in konstante definiearre yn de koptekst triem stdio.h

    De C-standertbibleteek biedt ferskate funksjes om bestannen te lêzen en te skriuwen troch tekens of as in tekenrige fan fêste lingte.

    Skriuw nei de triem

    Hjir binne de ienfâldichste funksjes om karakters nei de stream te skriuwen:

    int fputc (int c, FILE *fp);

    De funksje fputc () skriuwt de karakterwearde fan de parameter c yn de útfierstream wêrop de fp wiist. As de skriuwingen suksesfol binne, jout it it skreaune karakter en de EOF werom as in flater optreedt. Jo kinne de folgjende funksje brûke om in tekenrige te skriuwen dy't einiget mei in nul nei de stream:

    int fputs (const char *s, FILE *fp);

    De funksje fputs () skriuwt de tekenrige s nei de útfierstream wêr't de fp nei wiist. As it skriuwen slagje, jout it in net-negative wearde en de EOF as in flater optreedt. Jo kinne ek de funksje brûke fan int fprintf (FILE * fp, const char * format,...) skriuwt in tekenrige nei it bestân. Besykje it folgjende foarbyld:

    Opmerking: Soargje derfoar dat jo in beskikbere tmp-map hawwe, en as it net bestiet, moatte jo it earst op jo kompjûter oanmeitsje.

    / tmp is normaal in tydlike map op it Linux-systeem. As jo ​​​​op it Windows-systeem rinne, moatte jo it oanpasse oan in besteande map yn 'e lokale omjouwing, lykas: C: \ tmp, D: \ tmp, ensfh.

    libben foarbyld

    #ynklusyf int main() { FILE *fp = NULL; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp , "Dit is testen foar fprintf...\n "); fputs ("Dit is testen foar fputs...\n", fp ); fclose (fp); }

    As de boppesteande koade is kompilearre en útfierd, makket it in nije triem test.txt yn 'e / tmp-map. En skriuwt nei twa rigels mei twa ferskillende funksjes. Litte wy dit bestân folgjende lêze.

    Lês de triem

    De folgjende is de ienfâldichste funksje om ien karakter út in bestân te lêzen:

    int fgetc ( FILE * fp );

    De funksje fgetc () lêst in karakter út it ynfierbestân wêrop de fp wiist. De weromkommende wearde is it lêzen karakter en de EOF as in flater optreedt. De folgjende funksje lit jo in tekenrige fan in stream lêze:

    char *fgets (char *buf, int n, FILE *fp);

    De funksje fgets () lêst n-1 karakters út de ynfierstream regissearre troch fp. It kopiearret de lêzen tekenrige nei de buffer buf en heakket in nul karakter oan 'e ein om de tekenrige te beëinigjen.

    As dizze funksje tsjinkomt in brutsen line karakter '\ n' of de EOF fan 'e ein fan triem foardat it lêzen fan it lêste karakter, dan allinnich werom nei de lêzen karakters, ynklusyf line breaks. Jo kinne ek de funksje int fscanf (FILE * fp, const char * format,...) brûke om de tekenrige út it bestân te lêzen, mar it hâldt op mei lêzen as se de earste spaasje en rigelbreuk tsjinkomme.

    libben foarbyld

    #ynklusyf int main() { FILE *fp = NULL; char buff [255]; fp = fopen ("/tmp/test.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); }

    As de boppesteande koade is kompilearre en útfierd, lêst it de bestannen makke yn 'e foarige seksje, en produsearret de folgjende resultaten:

    1: Dizze 2: testet foar fprintf ...

    3: Dit is testen foar fputs ...

    Earst, de metoade fan fscanf () allinnich lêst This .omdat it tsjinkomt in spaasje yn 'e rêch. Twadder, rop functon fgets () om it oerbleaune diel te lêzen oant de ein fan 'e rigel. Ta beslút, belje fgets () om de twadde rige folslein te lêzen.

    Binary I / O funksje

    De folgjende twa funksjes wurde brûkt foar de binêre ynfier en útfier:

    size_t fread (void *ptr, size_t size_of_elements, size_t number_of_elements, FILE *a_file); size_t fwrite (const void *ptr, size_t size_of_elements, size_t number_of_elements, FILE *a_file);

    Beide funksjes wurde lêzen en skriuwe foar opslachblokken - meastentiids arrays as struktueren.

    Boppe oer C triem lêzen en skriuwen heart ta HDV Phoelectron Technology Ltd., in software technyske operaasje. En it bedriuw foar netwurk-relatearre apparatuer (lykas: ACONU/ kommunikaasjeONU/ yntelligintONU/ fiberONU, ensfh) hat brocht in krêftige software team, foar elke klant oanpasse de eksklusive easken dy't it nedich hawwe, ek lit ús produkten mear yntelligint en avansearre.



    web聊天