• Giga@hdv-tech.com
  • 24 sata online usluga:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Čitanje i pisanje dokumenata

    Vrijeme objave: 11. kolovoza 2023

    Opisuje kako C programer stvara, otvara i zatvara tekstualnu datoteku ili binarnu datoteku.

    Datoteka znači niz bajtova, bilo da se radi o tekstualnoj ili binarnoj datoteci, jezik C ne samo da omogućuje pristup funkcijama najviše razine, već također pruža temeljni (OS) poziv za obradu datoteka na uređaju za pohranu . Ovo poglavlje objasnit će važne pozive u upravljanju dokumentima.

    otvorena datoteka

    Obično korištenjem funkcije fopen () za stvaranje nove datoteke ili otvaranje postojeće datoteke, ovaj poziv inicijalizira objekt tipa FILE koji sadrži sve potrebne informacije za kontrolu toka. Evo prototipa ovog poziva funkcije:

    DATOTEKA *fopen ( const char * naziv datoteke, const char * način);

    Ovdje je naziv datoteke niz za imenovanje datoteke, vrijednost načina pristupa može biti jedna od sljedećih vrijednosti:

    uzorak

    opis

    r

    Otvorite postojeću tekstualnu datoteku koja omogućuje njezino čitanje.

    w

    Otvorite tekstualnu datoteku koja omogućuje pisanje u datoteku. Ako datoteka ne postoji, stvara se nova datoteka. Ovdje vaš program piše sadržaj od početka datoteke. Ako datoteka postoji, bit će skraćena na nultu duljinu i ponovno napisana.

    a

    Otvorite tekstualnu datoteku i pišite u datoteku u načinu dodavanja. Ako datoteka ne postoji, stvara se nova datoteka. Ovdje vaš program dodaje sadržaj datotekama koje već imate.

    r+

    Otvorite tekstualnu datoteku koja vam omogućuje čitanje i pisanje datoteke.

    w+

    Otvorite tekstualnu datoteku koja vam omogućuje čitanje i pisanje datoteke. Ako datoteka već postoji, datoteka se skraćuje na nultu duljinu, a ako datoteka ne postoji, stvara se nova datoteka.

    a+

    Otvorite tekstualnu datoteku koja vam omogućuje čitanje i pisanje datoteke. Ako datoteka ne postoji, stvara se nova datoteka. Čitanje počinje na početku datoteke, a pisanje je samo u načinu dodavanja.

    Ako se obrađuje binarna datoteka, koristite sljedeći način pristupa da biste zamijenili gore navedeno:

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

    zatvorena datoteka

    Da biste zatvorili datoteku, koristite funkciju fclose(). Prototip funkcije je sljedeći:

    int fclose (DATOTEKA *fp);

    • Ako je datoteka uspješno zatvorena, funkcija fclose() vraća nulu, a ako je pogreška vraća EOF. Ova funkcija, zapravo, uklanja podatke iz međuspremnika, zatvara datoteku i oslobađa svu memoriju korištenu za tu datoteku. EOF je konstanta definirana u datoteci zaglavlja stdio.h

    C standardna biblioteka pruža razne funkcije za čitanje i pisanje datoteka po znakovima ili kao niz fiksne duljine.

    Zapiši u datoteku

    Evo najjednostavnijih funkcija za pisanje znakova u tok:

    int fputc ( int c , DATOTEKA *fp );

    Funkcija fputc () zapisuje vrijednost znaka parametra c u izlazni tok na koji pokazuje fp. Ako je pisanje uspješno, vraća napisani znak i EOF ako se pojavi pogreška. Možete koristiti sljedeću funkciju za pisanje niza koji završava s nullom u tok:

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

    Funkcija fputs () zapisuje niz s u izlazni tok gdje pokazuje fp. Ako pisanje uspije, vraća nenegativnu vrijednost i EOF ako dođe do pogreške. Također možete koristiti funkciju int fprintf (FILE * fp, const char * format,...) piše niz u datoteku. Pokušajte sa sljedećim primjerom:

    Napomena: Provjerite imate li dostupan tmp direktorij, a ako ne postoji, morate ga prvo kreirati na svom računalu.

    / tmp je obično privremeni direktorij u sustavu Linux. Ako radite na Windows sustavu, trebate ga modificirati u postojeći direktorij u lokalnom okruženju, kao što je: C: \ tmp, D: \ tmp, itd.

    živi primjer

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

    Kada se gornji kod kompajlira i izvrši, stvara se nova datoteka test.txt u direktoriju / tmp. I piše u dva retka koristeći dvije različite funkcije. Pročitajmo ovu datoteku.

    Pročitajte datoteku

    Sljedeća je najjednostavnija funkcija za čitanje jednog znaka iz datoteke:

    int fgetc (DATOTEKA * fp);

    Funkcija fgetc () čita znak iz ulazne datoteke na koju pokazuje fp. Povratna vrijednost je znak za čitanje i EOF ako dođe do pogreške. Sljedeća funkcija vam omogućuje čitanje niza iz toka:

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

    Funkcija fgets () čita n-1 znakova iz ulaznog toka kojim upravlja fp. Kopira pročitani niz u međuspremnik buf i dodaje nulti znak na kraju da prekine niz.

    Ako ova funkcija naiđe na isprekidani znak '\ n' ili EOF kraja datoteke prije čitanja posljednjeg znaka, vraća se samo na pročitane znakove, uključujući prijelome redaka. Također možete koristiti funkciju int fscanf (FILE * fp, const char * format,...) za čitanje niza iz datoteke, ali ona prestaje čitati kada naiđe na prvi razmak i prijelom retka.

    živi primjer

    #uključi int main () { FILE *fp = NULL ; pougljenati sjaj [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); }

    Kada se gornji kod kompajlira i izvrši, on čita datoteke stvorene u prethodnom odjeljku, proizvodeći sljedeće rezultate:

    1: Ovo 2: testira fprintf...

    3: Ovo je testiranje za fputs...

    Prvo, metoda fscanf() čita samo ovo .jer nailazi na razmak pozadi. Drugo, pozovite funkciju fgets () da pročitate preostali dio do kraja retka. Na kraju, pozovite fgets () za potpuno čitanje drugog reda.

    Binarna I/O funkcija

    Sljedeće dvije funkcije koriste se za binarni ulaz i izlaz:

    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 broj_elemenata, FILE *a_file);

    Obje funkcije su čitanje i pisanje za blokove pohrane - obično nizove ili strukture.

    Gore navedeno o čitanju i pisanju C datoteke pripada HDV Phoelectron Technology Ltd., softverskoj tehničkoj operaciji. I tvrtka za mrežnu opremu (kao što su: ACONU/ komunikacijaONU/ inteligentanONU/ vlaknaONU, itd.) okupio je snažan softverski tim, za svakog kupca prilagoditi ekskluzivne zahtjeve koji to trebaju, također neka naši proizvodi budu inteligentniji i napredniji.



    web聊天