• Giga@hdv-tech.com
  • 24H Onlaýn hyzmat:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Resminamalary okamak we ýazmak

    Iş wagty: 11-2023-nji awgust

    C programmistiniň tekst faýlyny ýa-da ikili faýly nädip döredýändigini, açýandygyny we ýapýandygyny beýan edýär.

    Faýl, tekst faýly bolsun ýa-da ikili faýl bolsun, C dili bolsun, bir topar baýt diýmekdir, diňe bir ýokary derejeli funksiýalara girişi üpjün etmän, eýsem ammar enjamyndaky faýllary gaýtadan işlemek üçin esasy (OS) çagyryşyny hem üpjün edýär. . Bu bap resminamalary dolandyrmakdaky möhüm çagyryşlary düşündirer.

    açyk faýl

    Adatça täze faýl döretmek ýa-da bar bolan faýly açmak üçin fopen () funksiýasyny ulanyp, bu jaň akymy dolandyrmak üçin ähli zerur maglumatlary öz içine alýan FILE görnüşindäki obýekti başlaýar. Ine, bu funksiýa çagyryşynyň prototipi:

    Faýl * fopen (const char * faýlyň ady, const char * re) imi);

    Bu ýerde faýlyň ady bir faýlyň adyny görkezmek üçin setir, giriş re modeiminiň bahasy aşakdaky bahalardan biri bolup biler:

    nagyş

    beýany

    r

    Okamaga mümkinçilik berýän bar bolan faýl açyň.

    w

    Faýla ýazmaga mümkinçilik berýän tekst faýly açyň. Faýl ýok bolsa, täze faýl döredilýär. Bu ýerde programmaňyz faýlyň başyndan mazmuny ýazýar. Faýl bar bolsa, nol uzynlyga çenli kesiler we gaýtadan ýazylar.

    a

    Tekst faýly açyň we faýla goşmaça re inimde ýazyň. Faýl ýok bolsa, täze faýl döredilýär. Bu ýerde, programmaňyz eýýäm bar bolan faýllara mazmun goşýar.

    r+

    Faýly okamaga we ýazmaga mümkinçilik berýän tekst faýly açyň.

    w+

    Faýly okamaga we ýazmaga mümkinçilik berýän tekst faýly açyň. Faýl eýýäm bar bolsa, faýl nol uzynlyga çenli kesilýär we faýl ýok bolsa, täze faýl döredilýär.

    a+

    Faýly okamaga we ýazmaga mümkinçilik berýän tekst faýly açyň. Faýl ýok bolsa, täze faýl döredilýär. Okamak faýlyň başynda başlaýar we ýazmak diňe goşundy re iniminde bolýar.

    Ikilik faýly gaýtadan işlenen bolsa, ýokardakylary çalyşmak üçin aşakdaky giriş tertibini ulanyň:

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

    ýapyk faýl

    Faýly ýapmak üçin fclose () funksiýasyny ulanyň. Funksiýanyň prototipi aşakdaky ýaly:

    int fclose (FILE * fp);

    • Faýl üstünlikli ýapylsa, fclose () funksiýasy nola, ýalňyşlyk bolsa EOF gaýdyp gelse. Aslynda bu funksiýa buferdäki maglumatlary aýyrýar, faýly ýapýar we şol faýl üçin ulanylýan ähli ýady boşadýar. EOF stdio.h sözbaşy faýlynda hemişelik kesgitlenýär

    C standart kitaphanasy faýllary simwollar boýunça ýa-da kesgitlenen setir hökmünde okamak we ýazmak üçin dürli funksiýalary üpjün edýär.

    Faýla ýazyň

    Ynha, akymlara nyşan ýazmak üçin iň ýönekeý funksiýalar:

    int fputc (int c, FILE * fp);

    Fputc () funksiýasy c parametriniň nyşan bahasyny fp görkezýän çykyş akymyna ýazýar. Writesazgylar üstünlikli bolsa, ýalňyşlyk ýüze çyksa, ýazylan belgini we EOF-ny yzyna gaýtaryp berýär. Aşakdaky funksiýany akym bilen null gutarýan setir ýazmak üçin ulanyp bilersiňiz:

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

    Fputs () funksiýasy s setirini fp görkezýän çykyş akymyna ýazýar. Writesazgylar üstünlikli bolsa, negatiw däl bahany we ýalňyşlyk ýüze çyksa EOF-ni yzyna gaýtaryp berýär. Şeýle hem int fprintf (FILE * fp, const char * format, ...) funksiýasyny ulanyp bilersiňiz. Aşakdaky mysaly synap görüň:

    Bellik: Elýeterli tmp katalogyňyzyň bardygyna göz ýetiriň we ýok bolsa, ilki ony kompýuteriňizde döretmeli.

    / tmp adatça Linux ulgamynda wagtlaýyn katalogdyr. Windows ulgamynda işleýän bolsaňyz, ony ýerli gurşawda bar bolan kataloga üýtgetmeli: C: \ tmp, D: \ tmp we ş.m.

    janly mysal

    # goş int main () {FILE * fp = NULL; fp = fopen ("/tmp/test.txt", "w +"); fprintf (fp, "Bu fprintf üçin synag ... \ n"); fputs ("Bu fputs üçin synag ... \ n", fp); fclose (fp); }

    Aboveokardaky kod düzülende we ýerine ýetirilende, test.txt inthe / tmp katalogyny döredýär. Iki dürli funksiýany ulanyp iki setire ýazýar. Geliň, indiki faýly okalyň.

    Faýly okaň

    Aşakda bir faýldan bir nyşan okamak iň ýönekeý funksiýa:

    int fgetc (FILE * fp);

    Fgetc () funksiýasy, fp görkezýän giriş faýlyndan bir nyşan okaýar. Yza gaýtaryş bahasy, ýalňyşlyk ýüze çyksa, okalýan nyşan we EOF. Aşakdaky funksiýa akymdan bir setir okamaga mümkinçilik berýär:

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

    Fgets () funksiýasy fp tarapyndan ugrukdyrylan giriş akymyndan n-1 nyşanlary okaýar. Okalýan setiri bufer bufyna göçürýär we setiri ýatyrmak üçin soňunda bir nyşan goşýar.

    Bu funksiýa soňky harpy okamazdan ozal '\ n' ýa-da faýlyň soňundaky EOF döwülen setir nyşanyna duş gelse, diňe setir arakesmelerini goşmak bilen diňe okalýan nyşanlara gaýdyp geler. Şeýle hem faýldan setiri okamak üçin int fscanf (FILE * fp, const char * format, ...) funksiýasyny ulanyp bilersiňiz, ýöne birinji giňişlik we setir arakesmesine duşanda okamagy bes edýär.

    janly mysal

    # goş 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); }

    Aboveokardaky kod düzülende we ýerine ýetirilende, aşakdaky bölümleri döredip, öňki bölümde döredilen faýllary okaýar:

    1: Bu 2: fprintf üçin synag ...

    3: Bu fputs üçin synag ...

    Ilki bilen, fscanf () usuly diňe şuny okaýar. Sebäbi arka tarapda boşluk bar. Ikinjiden, setiriň ahyryna çenli galan bölegini okamak üçin funksiýa fgets () jaň ediň. Ahyrynda, ikinji hatary doly okamak üçin fgets () jaň ediň.

    Ikilik I / O funksiýasy

    Ikilik giriş we çykyş üçin aşakdaky iki funksiýa ulanylýar:

    size_t fread (boş * ptr, size_t size_of_elements, size_t number_of_elements, FILE * a_file); size_t fwrite (const boşluk * ptr, size_t size_of_elements, size_t number_of_elements, FILE * a_file);

    Iki funksiýa hem adatça bloklar ýa-da gurluşlar üçin okalýar we ýazylýar.

    C faýly okamak we ýazmak hakda ýokarda programma üpjünçiligi tehniki amal HDV Phoelectron Technology Ltd. degişlidir. Tor bilen baglanyşykly enjamlar üçin kompaniýa (meselem: ACONU/ aragatnaşykONU/ akyllyONU/ süýümONUwe ş.m.) güýçli programma üpjünçiligi toparyny bir ýere jemledi, her bir müşderi özüne zerur bolan aýratyn talaplary özleşdirýär, önümlerimizi has akylly we ösen edýär.



    web 聊天