• Giga@hdv-tech.com
  • 24-urna spletna storitev:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Branje in pisanje dokumentov

    Čas objave: 11. avgusta 2023

    Opisuje, kako programer C ustvari, odpre in zapre besedilno datoteko ali binarno datoteko.

    Datoteka pomeni niz bajtov, ne glede na to, ali gre za besedilno datoteko ali binarno datoteko, jezik C ne zagotavlja le dostopa do funkcij najvišje ravni, temveč zagotavlja tudi osnovni klic (OS) za obdelavo datotek na napravi za shranjevanje. .V tem poglavju so razloženi pomembni klici pri upravljanju dokumentov.

    Odpri datoteko

    Običajno z uporabo funkcije fopen () za ustvarjanje nove datoteke ali odpiranje obstoječe datoteke ta klic inicializira objekt tipa FILE, ki vsebuje vse potrebne informacije za nadzor toka.Tukaj je prototip tega klica funkcije:

    FILE *fopen (const char * ime datoteke, const char * način);

    Tu je ime datoteke niz za poimenovanje datoteke, vrednost načina dostopa je lahko ena od naslednjih vrednosti:

    vzorec

    opis

    r

    Odprite obstoječo besedilno datoteko, ki omogoča branje.

    w

    Odprite besedilno datoteko, ki omogoča pisanje v datoteko.Če datoteka ne obstaja, se ustvari nova datoteka.Tukaj vaš program zapiše vsebino od začetka datoteke.Če datoteka obstaja, bo skrajšana na ničelno dolžino in ponovno zapisana.

    a

    Odprite besedilno datoteko in pišite vanjo v načinu dodajanja.Če datoteka ne obstaja, se ustvari nova datoteka.Tu vaš program doda vsebino datotekam, ki jih že imate.

    r+

    Odprite besedilno datoteko, ki vam omogoča branje in pisanje datoteke.

    w+

    Odprite besedilno datoteko, ki vam omogoča branje in pisanje datoteke.Če datoteka že obstaja, se datoteka skrajša na ničelno dolžino, in če datoteka ne obstaja, se ustvari nova datoteka.

    a+

    Odprite besedilno datoteko, ki vam omogoča branje in pisanje datoteke.Če datoteka ne obstaja, se ustvari nova datoteka.Branje se začne na začetku datoteke, pisanje pa je samo v načinu dodajanja.

    Če je obdelana binarna datoteka, uporabite naslednji način dostopa, da nadomestite zgornje:

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

    zaprta datoteka

    Če želite zapreti datoteko, uporabite funkcijo fclose().Prototip funkcije je naslednji:

    int fclose (DATOTEKA *fp);

    • Če je datoteka uspešno zaprta, funkcija fclose() vrne nič, če pa je napaka, vrne EOF.Ta funkcija dejansko odstrani podatke iz vmesnega pomnilnika, zapre datoteko in sprosti ves pomnilnik, uporabljen za to datoteko.EOF je konstanta, definirana v datoteki glave stdio.h

    Standardna knjižnica C ponuja različne funkcije za branje in pisanje datotek po znakih ali kot niz s fiksno dolžino.

    Zapiši v datoteko

    Tukaj so najpreprostejše funkcije za pisanje znakov v tok:

    int fputc (int c, DATOTEKA *fp);

    Funkcija fputc () zapiše vrednost znaka parametra c v izhodni tok, na katerega kaže fp.Če je pisanje uspešno, vrne zapisani znak in EOF, če pride do napake.Za pisanje niza, ki se konča z ničlo, v tok lahko uporabite naslednjo funkcijo:

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

    Funkcija fputs () zapiše niz s v izhodni tok, kamor kaže fp.Če je pisanje uspešno, vrne nenegativno vrednost in EOF, če pride do napake.Uporabite lahko tudi funkcijo int fprintf (FILE * fp, const char * format,...) zapiše niz v datoteko.Poskusite naslednji primer:

    Opomba: Prepričajte se, da imate na voljo imenik tmp, in če ne obstaja, ga morate najprej ustvariti v računalniku.

    / tmp je običajno začasni imenik v sistemu Linux.Če uporabljate sistem Windows, ga morate spremeniti v obstoječi imenik v lokalnem okolju, kot je: C: tmp, D: tmp itd.

    živi primer

    #vključiint main () { FILE *fp = NULL ;fp = fopen ("/tmp/test.txt", "w+");fprintf (fp , "To je testiranje za fprintf ...\n ");fputs ("To je testiranje za fputs ...\n ", fp );fclose (fp);}

    Ko je zgornja koda prevedena in izvedena, ustvari novo datoteko test.txt v imeniku / tmp.In piše v dve vrstici z uporabo dveh različnih funkcij.Nato preberimo to datoteko.

    Preberi datoteko

    Sledi najpreprostejša funkcija za branje enega znaka iz datoteke:

    int fgetc (DATOTEKA * fp);

    Funkcija fgetc () prebere znak iz vhodne datoteke, na katero kaže fp.Vrnjena vrednost je prebrani znak in EOF, če pride do napake.Naslednja funkcija vam omogoča branje niza iz toka:

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

    Funkcija fgets () prebere n-1 znakov iz vhodnega toka, ki ga usmerja fp.Kopira prebrani niz v medpomnilnik buf in na koncu doda ničelni znak, da prekine niz.

    Če ta funkcija naleti na znak prelomljene črte '\ n' ali EOF konca datoteke pred branjem zadnjega znaka, se vrne samo na prebrane znake, vključno s prelomi vrstic.Za branje niza iz datoteke lahko uporabite tudi funkcijo int fscanf (FILE * fp, const char * format,...), vendar preneha brati, ko naleti na prvi presledek in prelom vrstice.

    živi primer

    #vključiint 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, (DATOTEKA *)fp);printf ("2: %s \n ", buff );fgets (buff, 255, (DATOTEKA *)fp);printf ("3: %s \n ", buff );fclose (fp);}

    Ko je zgornja koda prevedena in izvedena, prebere datoteke, ustvarjene v prejšnjem razdelku, in ustvari naslednje rezultate:

    1: Ta 2: preizkuša fprintf ...

    3: To je testiranje za fputs ...

    Prvič, metoda fscanf() bere le To, ker zadaj naleti na presledek.Drugič, pokličite funkcijo fgets (), da preberete preostali del do konca vrstice.Na koncu pokličite fgets (), da v celoti preberete drugo vrstico.

    Binarna V/I funkcija

    Za binarni vhod in izhod se uporabljata naslednji dve funkciji:

    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);

    Obe funkciji sta namenjeni branju in pisanju za pomnilniške bloke - običajno nize ali strukture.

    Zgoraj o branju in pisanju datoteke C pripada HDV Phoelectron Technology Ltd., tehnični operaciji programske opreme.In podjetje za opremo, povezano z omrežjem (kot je: ACONU/ komunikacijaONU/ inteligentenONU/ vlaknoONU, itd.) je združil zmogljivo ekipo programske opreme, ki za vsako stranko prilagodi ekskluzivne zahteve, ki jo potrebujejo, prav tako naj bodo naši izdelki bolj inteligentni in napredni.



    splet 聊天