• Giga@hdv-tech.com
  • Tšebeletso ea Marang-rang ea 24H:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Ho Bala Litokomane le ho Ngola

    Nako ea poso: Aug-11-2023

    E hlalosa hore na C programmer e theha, e bula, le ho koala faele ea mongolo, kapa faele ea binary.

    Faele, e bolela letoto la li-byte, ebang ke faele ea mongolo kapa faele ea binary, C Language, ha e fane feela ka phihlello ea mesebetsi ea boemo bo holimo, empa hape e fana ka mohala oa motheo (OS) oa ho sebetsana le lifaele sesebelisoa sa polokelo. . Khaolo ena e tla hlalosa mehala ea bohlokoa taolong ea litokomane.

    bula file

    Hangata ho sebelisa fopen () ho etsa faele e ncha kapa ho bula faele e teng, pitso ena e qala ntho ea mofuta oa FILE e nang le boitsebiso bohle bo hlokahalang ho laola phallo. Mona ke mohlala oa ts'ebetso ena ea mohala:

    FILE * fopen ( const char * filename , const char * mode );

    Mona filename ke khoele ea ho reha faele, boleng ba mokhoa oa phihlello e ka ba e 'ngoe ea litekanyetso tse latelang:

    mohlala

    tlhaloso

    r

    Bula faele ea mongolo e teng e lumellang hore e baloe.

    w

    Bula faele ea mongolo e lumellang ho ngolla faele. Haeba faele e le sieo, ho tla etsoa faele e ncha. Mona, lenaneo la hau le ngola litaba ho tloha qalong ea faele. Haeba faele e le teng, e tla fokotsoa ho fihlela bolelele ba lefela ebe e ngoloa bocha.

    a

    Bula faele ea mongolo ebe u ngolla faele ka mokhoa oa append. Haeba faele e le sieo, ho tla etsoa faele e ncha. Mona, lenaneo la hau le kenyelletsa litaba ho lifaele tseo u seng u ntse u e-na le tsona.

    r+

    Bula faele ea mongolo e u lumellang ho bala le ho ngola faele.

    w+

    Bula faele ea mongolo e u lumellang ho bala le ho ngola faele. Haeba faele e se e ntse e le teng, faele e fokotsoa ho fihlela bolelele ba zero, 'me haeba faele e le sieo, faele e ncha e etsoa.

    a+

    Bula faele ea mongolo e u lumellang ho bala le ho ngola faele. Haeba faele e le sieo, ho tla etsoa faele e ncha. Ho bala ho qala qalong ea faele, 'me ho ngola ho ka mokhoa oa append feela.

    Haeba faele ea binary e sebetsoa, ​​​​sebelisa mokhoa o latelang oa phihlello ho khutlisa e kaholimo:

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

    faele e koetsoeng

    Ho koala faele, ka kopo sebelisa ts'ebetso ea fclose(). Prototype ea ts'ebetso ke e latelang:

    int fclose ( FILE * fp );

    • Haeba faele e koetsoe ka katleho, mosebetsi oa fclose () o khutlisa zero, 'me haeba phoso e khutlisa EOF. Ts'ebetso ena, ha e le hantle, e tlosa data ho buffer, e koala faele, 'me e lokolla memori eohle e sebelisetsoang faele eo. EOF e hlalosoa ka linako tsohle ho file ea hlooho ea stdio.h

    Laeborari e tloaelehileng ea C e fana ka mesebetsi e fapaneng ea ho bala le ho ngola lifaele ka litlhaku kapa joalo ka khoele ea bolelele bo tsitsitseng.

    Ngola faeleng

    Mona ke mesebetsi e bonolo ea ho ngola litlhaku ho molatsoana:

    int fputc ( int c , FILE *fp );

    Mosebetsi fputc () o ngola boleng ba sebopeho sa paramethara c ho molapo o hlahisoang oo fp e supang ho ona. Haeba ho ngola ho atlehile, e khutlisetsa sebopeho se ngotsoeng le EOF haeba phoso e etsahala. U ka sebelisa ts'ebetso e latelang ho ngola khoele e qetellang ka null ho molapo:

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

    Mosebetsi oa fputs () o ngola khoele s ho molatsoana oa tlhahiso moo fp e supang teng. Haeba ho ngola ho atleha, e khutlisa boleng bo seng bobe le EOF haeba phoso e etsahala. U ka sebelisa ts'ebetso ea int fprintf (FILE * fp, const char * format,...) e ngola khoele faeleng. Leka mohlala o latelang:

    Tlhokomeliso: Etsa bonnete ba hore u na le tmp directory e fumanehang, 'me haeba e le sieo, u lokela ho e etsa khomphuteng ea hau pele.

    / tmp hangata ke buka ea nakoana ea sistimi ea Linux. Haeba o sebelisa sistimi ea Windows, o hloka ho e fetolela bukeng e teng sebakeng sa lehae, joalo ka: C: \ tmp, D: \ tmp, jj.

    mohlala o phelang

    # kenyeletsa int main () { FILE *fp = NULL ; fp = fopen ("/tmp/test.txt ", "w+"); fprintf (fp , "Sena ke teko ea fprintf...\n "); fputs ("Sena ke teko ea fputs...\n ", fp ); ho koala (fp); }

    Ha khoutu e ka holimo e bokelloa le ho etsoa, ​​​​e theha faele e ncha test.txt inthe / tmp directory. Mme o ngolla mela e mmedi a sebedisa ditshebetso tse pedi tse fapaneng. Ha re bale faele ena nakong e tlang.

    Bala faele

    E latelang ke mosebetsi o bonolo oa ho bala tlhaku e le 'ngoe ho tsoa faeleng:

    int fgetc ( FILE * fp );

    Mosebetsi oa fgetc () o bala tlhaku ho tsoa faeleng e kentsoeng eo fp e supang ho eona. Boleng ba ho khutla ke sebopeho se baloang le EOF haeba phoso e etsahala. Mosebetsi o latelang o u lumella ho bala khoele ho tsoa molapong:

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

    Mosebetsi fgets () o bala litlhaku tsa n-1 ho tsoa ho molapo o kenang o tsamaisoang ke fp. E kopitsa khoele e baloang ho buffer buf ebe e hlomathisa tlhaku e sa sebetseng qetellong ho felisa khoele.

    Haeba ts'ebetso ena e kopana le mohala o robehileng '\ n' kapa EOF ea pheletso ea faele pele o bala tlhaku ea ho qetela, ebe o khutlela ho batho bao ho buuoang ka bona, ho kenyelletsa le khefutso ea mela. U ka boela ua sebelisa int fscanf (FILE * fp, const char * format,...) mosebetsi oa ho bala khoele e tsoang faeleng, empa e khaotsa ho bala ha e kopana le sebaka sa pele le ho robeha ha mela.

    mohlala o phelang

    # kenyeletsa 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 ); ho koala (fp); }

    Ha khoutu e ka holimo e hlophisitsoe le ho etsoa, ​​​​e bala lifaele tse entsoeng karolong e fetileng, e hlahisa liphetho tse latelang:

    1: Ena ea 2: e etsa tlhahlobo ea fprintf...

    3: Sena ke tlhahlobo ea fputs ...

    Ntlha ea pele, mokhoa oa fscanf() o bala feela Sena .hobane e kopana le sebaka ka morao. Ea bobeli, letsetsa functon fgets () ho bala karolo e setseng ho fihlela qetellong ea mola. Qetellong, letsetsa fgets () ho bala mola oa bobeli ka ho feletseng.

    Binary I / O tshebetso

    Mesebetsi e 'meli e latelang e sebelisoa bakeng sa tlhahiso le tlhahiso ea binary:

    boholo_t fread (boid *ptr , size_t size_of_elements , size_t number_of_elements , FILE * a_file ); size_t fwrite (consst void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file);

    Mesebetsi ka bobeli e baloa le ho ngoloa bakeng sa li-blocks tsa polokelo-hangata li-arrays kapa mehaho.

    Ka holimo hoo e ka bang C faele ea ho bala le ho ngola ke ea HDV Phoelectron Technology Ltd., software technical operation. Le k'hamphani ea lisebelisoa tse amanang le marang-rang (joalo ka: ACONU/ puisanoONU/ bohlaleONU/ fiberONU, joalo-joalo) e kopantse sehlopha se matla sa software, bakeng sa moreki e mong le e mong ho etsa litlhoko tse ikhethileng tsa ba e hlokang, hape re lumelle lihlahisoa tsa rona hore li be bohlale le ho feta.



    web聊天