• Giga@hdv-tech.com
  • 24 val. internetinė paslauga:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagramas

    C, dokumentų skaitymas ir rašymas

    Paskelbimo laikas: 2023-08-11

    Apibūdinama, kaip C programuotojas sukuria, atidaro ir uždaro tekstinį failą arba dvejetainį failą.

    Failas reiškia baitų seriją, nesvarbu, ar tai tekstinis failas, ar dvejetainis failas, C kalba ne tik suteikia prieigą prie aukščiausio lygio funkcijų, bet ir suteikia pagrindinį (OS) skambutį failams apdoroti saugojimo įrenginyje. . Šiame skyriuje bus paaiškintos svarbios dokumentų valdymo problemos.

    atidaryti failą

    Paprastai naudojant funkciją fopen () sukurti naują failą arba atidaryti esamą failą, šis iškvietimas inicijuoja FILE tipo objektą, kuriame yra visa reikalinga informacija srautui valdyti. Štai šios funkcijos iškvietimo prototipas:

    FILE *fopen ( const char * failo pavadinimas , const char * režimas );

    Čia failo pavadinimas yra failo pavadinimo eilutė, prieigos režimo reikšmė gali būti viena iš šių reikšmių:

    modelis

    aprašymas

    r

    Atidarykite esamą tekstinį failą, kuris leidžia jį skaityti.

    w

    Atidarykite tekstinį failą, leidžiantį rašyti į failą. Jei failo nėra, sukuriamas naujas failas. Čia jūsų programa rašo turinį nuo failo pradžios. Jei failas egzistuoja, jis bus sutrumpintas iki nulio ir perrašytas.

    a

    Atidarykite tekstinį failą ir įrašykite į failą pridėjimo režimu. Jei failo nėra, sukuriamas naujas failas. Čia jūsų programa prideda turinį prie jau turimų failų.

    r+

    Atidarykite tekstinį failą, kuris leidžia skaityti ir rašyti failą.

    w+

    Atidarykite tekstinį failą, kuris leidžia skaityti ir rašyti failą. Jei failas jau yra, failas sutrumpinamas iki nulio ilgio, o jei failo nėra, sukuriamas naujas failas.

    a+

    Atidarykite tekstinį failą, kuris leidžia skaityti ir rašyti failą. Jei failo nėra, sukuriamas naujas failas. Skaitymas prasideda failo pradžioje, o rašymas vyksta tik pridėjimo režimu.

    Jei apdorotas dvejetainis failas, naudokite šį prieigos režimą, kad pakeistumėte aukščiau pateiktą:

    „rb“, „wb“, „ab“, „rb+“, „r+b“, „wb+“, „w+b“, „ab+“, „a+b“

    uždarytas failas

    Norėdami uždaryti failą, naudokite fclose() funkciją. Funkcijos prototipas yra toks:

    int fclose ( FILE *fp );

    • Jei failas sėkmingai uždaromas, funkcija fclose() grąžina nulį, o jei klaida – EOF. Ši funkcija iš tikrųjų pašalina duomenis iš buferio, uždaro failą ir atlaisvina visą tam failui naudojamą atmintį. EOF yra konstanta, apibrėžta antraštės faile stdio.h

    C standartinė biblioteka suteikia įvairių funkcijų, leidžiančių skaityti ir rašyti failus pagal simbolius arba kaip fiksuoto ilgio eilutę.

    Rašykite į failą

    Štai paprasčiausios funkcijos rašyti simbolius į srautą:

    int fputc ( int c , FILE *fp );

    Funkcija fputc () įrašo parametro c simbolio reikšmę į išvesties srautą, į kurį nurodo fp. Jei įrašymas sėkmingas, jis grąžina parašytą simbolį ir EOF, jei įvyksta klaida. Norėdami į srautą įrašyti eilutę, kuri baigiasi nuliu, galite naudoti šią funkciją:

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

    Funkcija fputs () įrašo eilutę s į išvesties srautą, kur nurodo fp. Jei rašymas sėkmingas, jis grąžina neneigiamą reikšmę ir EOF, jei įvyksta klaida. Taip pat galite naudoti funkciją int fprintf (FILE * fp, const char * formatas,...) įrašo į failą eilutę. Išbandykite šį pavyzdį:

    Pastaba: Įsitikinkite, kad turite laisvą tmp katalogą, o jei jo nėra, pirmiausia turite jį sukurti savo kompiuteryje.

    / tmp paprastai yra laikinas katalogas Linux sistemoje. Jei naudojate „Windows“ sistemą, turite ją modifikuoti į esamą katalogą vietinėje aplinkoje, pvz.: C: \ tmp, D: \ tmp ir kt.

    gyvas pavyzdys

    #įtraukti int main () { FILE *fp = NULL ; fp = fopen ("/tmp/test.txt ", "w+"); fprintf (fp , "Tai yra fprintf testavimas...\n"); fputs ("Tai yra fputs testavimas...\n ", fp ); fclose (fp ); }

    Kai aukščiau pateiktas kodas yra sukompiliuotas ir vykdomas, jis sukuria naują failą test.txt / tmp kataloge. Ir rašo į dvi eilutes naudodamas dvi skirtingas funkcijas. Toliau skaitykime šį failą.

    Perskaitykite failą

    Toliau pateikiama paprasčiausia funkcija nuskaityti vieną simbolį iš failo:

    int fgetc (FILE * fp );

    Fgetc () funkcija nuskaito simbolį iš įvesties failo, į kurį nukreipia fp. Grąžinama vertė yra skaitymo simbolis ir EOF, jei įvyksta klaida. Ši funkcija leidžia nuskaityti eilutę iš srauto:

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

    Funkcija fgets () nuskaito n-1 simbolius iš įvesties srauto, nukreipto fp. Jis nukopijuoja skaitymo eilutę į buferio buferį ir pabaigoje prideda nulinį simbolį, kad nutrauktų eilutę.

    Jei prieš nuskaitant paskutinį simbolį ši funkcija aptinka trūkinės eilutės simbolį „\ n“ arba failo pabaigos EOF, grįžtama tik prie skaitytų simbolių, įskaitant eilučių lūžius. Taip pat galite naudoti funkciją int fscanf (FILE * fp, const char * formatas,...) norėdami nuskaityti eilutę iš failo, tačiau ji nustoja skaityti, kai atsiranda pirmasis tarpas ir eilutės lūžis.

    gyvas pavyzdys

    #įtraukti 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 ); }

    Kai aukščiau pateiktas kodas yra sukompiliuotas ir vykdomas, jis nuskaito ankstesniame skyriuje sukurtus failus ir pateikia tokius rezultatus:

    1: Šis 2: bando fprintf...

    3: tai yra fputs testavimas...

    Pirma, fscanf() metodas skaito tik This ., nes jo gale yra tarpas. Antra, skambinkite functon fgets (), kad perskaitytumėte likusią dalį iki eilutės pabaigos. Galiausiai paskambinkite fgets (), kad visiškai perskaitytumėte antrąją eilutę.

    Dvejetainė įvesties / išvesties funkcija

    Dvejetainiam įėjimui ir išėjimui naudojamos dvi šios funkcijos:

    dydis_t fread (negalioja *ptr , dydis_t elementų_dydis , dydis_t elementų_skaičius , FILE *a_failas ); dydis_t fwrite (const void *ptr , dydis_t_elementų_dydis , dydis_t_elementų_skaičius , FILE *a_failas );

    Abi funkcijos yra nuskaitomos ir rašomos saugojimo blokams – dažniausiai masyvams arba struktūroms.

    Aukščiau apie C failų skaitymą ir rašymą priklauso HDV Phoelectron Technology Ltd., programinės įrangos techninė operacija. Ir su tinklu susijusios įrangos įmonė (pvz., ACONU/ bendravimasONU/ protingasONU/ pluoštasONUtt) subūrė galingą programinės įrangos komandą, kuri kiekvienam klientui pritaikys išskirtinius poreikius, kuriems to reikia, taip pat leiskite mūsų gaminiams pažangesnius ir pažangesnius.



    web聊天