• Giga@hdv-tech.com
  • 24H Online na Serbisyo:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, Pagbasa at Pagsulat ng Dokumento

    Oras ng post: Aug-11-2023

    Inilalarawan kung paano lumilikha, nagbubukas, at nagsasara ang C programmer ng text file, o binary file.

    Ang isang file, ay nangangahulugang isang serye ng mga byte, ito man ay isang text file o isang binary file, C Language, hindi lamang nagbibigay ng access sa pinakamataas na antas ng mga function, ngunit nagbibigay din ng pinagbabatayan (OS) na tawag upang iproseso ang mga file sa storage device . Ipapaliwanag ng kabanatang ito ang mahahalagang tawag sa pamamahala ng dokumento.

    bukas na file

    Karaniwang ginagamit ang function na fopen () upang lumikha ng bagong file o magbukas ng umiiral na file, ang tawag na ito ay nagpapasimula ng isang bagay na may uri ng FILE na naglalaman ng lahat ng kinakailangang impormasyon upang makontrol ang daloy. Narito ang prototype ng tawag sa function na ito:

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

    Narito ang filename ay isang string upang pangalanan ang isang file, ang halaga ng access mode ay maaaring isa sa mga sumusunod na halaga:

    pattern

    paglalarawan

    r

    Magbukas ng umiiral nang text file na nagbibigay-daan dito na mabasa.

    w

    Magbukas ng text file na nagbibigay-daan sa pagsulat sa file. Kung ang file ay hindi umiiral, ang isang bagong file ay nilikha. Dito, isinusulat ng iyong programa ang nilalaman mula sa simula ng file. Kung ang file ay umiiral, ito ay puputulin sa zero na haba at muling isusulat.

    a

    Magbukas ng text file at sumulat sa file sa isang append mode. Kung ang file ay hindi umiiral, ang isang bagong file ay nilikha. Dito, ang iyong programa ay nagdaragdag ng nilalaman sa mga file na mayroon ka na.

    r+

    Magbukas ng text file na nagbibigay-daan sa iyong basahin at isulat ang file.

    w+

    Magbukas ng text file na nagbibigay-daan sa iyong basahin at isulat ang file. Kung ang file ay mayroon na, ang file ay pinutol sa zero na haba, at kung ang file ay hindi umiiral, ang isang bagong file ay nilikha.

    a+

    Magbukas ng text file na nagbibigay-daan sa iyong basahin at isulat ang file. Kung ang file ay hindi umiiral, ang isang bagong file ay nilikha. Ang pagbabasa ay nagsisimula sa simula ng file, at ang pagsulat ay nasa append mode lamang.

    Kung naproseso ang binary file, gamitin ang sumusunod na access mode upang palitan ang nasa itaas:

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

    saradong file

    Upang isara ang file, mangyaring gamitin ang fclose() function. Ang prototype ng function ay ang mga sumusunod:

    int fclose ( FILE *fp );

    • Kung ang file ay matagumpay na naisara, ang fclose() function ay nagbabalik ng zero, at kung ang error ay nagbabalik ng EOF. Ang function na ito, sa katunayan, ay nag-aalis ng data mula sa buffer, nagsasara ng file, at naglalabas ng lahat ng memorya na ginamit para sa file na iyon. Ang EOF ay isang pare-parehong tinukoy sa header file na stdio.h

    Ang C standard na library ay nagbibigay ng iba't ibang mga function upang basahin at isulat ang mga file sa pamamagitan ng mga character o bilang isang fixed-length na string.

    Sumulat sa file

    Narito ang pinakasimpleng mga function upang magsulat ng mga character sa stream:

    int fputc ( int c , FILE *fp );

    Ang function na fputc () ay nagsusulat ng character value ng parameter c sa output stream na itinuturo ng fp. Kung matagumpay ang pagsusulat, ibinabalik nito ang nakasulat na karakter at ang EOF kung may naganap na error. Maaari mong gamitin ang sumusunod na function upang magsulat ng isang string na nagtatapos sa isang null sa stream:

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

    Ang function na fputs () ay nagsusulat ng string s sa output stream kung saan ang fp ay tumuturo. Kung magtagumpay ang pagsusulat, ibabalik nito ang isang hindi negatibong halaga at ang EOF kung may naganap na error. Maaari mo ring gamitin ang function ng int fprintf (FILE * fp, const char * format,...) nagsusulat ng string sa file. Subukan ang sumusunod na halimbawa:

    Tandaan: Siguraduhin na mayroon kang available na direktoryo ng tmp, at kung wala ito, kailangan mo munang likhain ito sa iyong computer.

    Ang / tmp ay karaniwang isang pansamantalang direktoryo sa sistema ng Linux. Kung tumatakbo ka sa Windows system, kailangan mong baguhin ito sa isang umiiral na direktoryo sa lokal na kapaligiran, tulad ng: C: \ tmp, D: \ tmp, atbp.

    buhay na halimbawa

    #isama int main () { FILE *fp = NULL ; fp = fopen ("/tmp/test.txt ", "w+"); fprintf (fp , "Ito ay pagsubok para sa fprintf...\n "); fputs ("Ito ay pagsubok para sa fputs...\n ", fp ); fclose (fp ); }

    Kapag naipon at naisakatuparan ang code sa itaas, lilikha ito ng bagong file test.txt sa direktoryo ng /tmp. At nagsusulat sa dalawang linya gamit ang dalawang magkaibang function. Basahin natin ang file na ito sa susunod.

    Basahin ang file

    Ang sumusunod ay ang pinakasimpleng function upang basahin ang isang character mula sa isang file:

    int fgetc ( FILE * fp );

    Ang fgetc () function ay nagbabasa ng isang character mula sa input file kung saan ang fp ay tumuturo. Ang return value ay ang read character at ang EOF kung may naganap na error. Ang sumusunod na function ay nagbibigay-daan sa iyo na magbasa ng isang string mula sa isang stream:

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

    Ang function na fgets () ay nagbabasa ng mga n-1 na character mula sa input stream na nakadirekta ng fp. Kinokopya nito ang nabasang string sa buffer buf at nagdaragdag ng null character sa dulo upang wakasan ang string.

    Kung ang function na ito ay nakatagpo ng isang sirang line character na '\ n' o ang EOF ng dulo ng file bago basahin ang huling character, pagkatapos ay bumalik lamang sa mga binasang character, kabilang ang mga line break. Maaari mo ring gamitin ang int fscanf (FILE * fp, const char * format,...) function upang basahin ang string mula sa file, ngunit huminto ito sa pagbabasa kapag nakatagpo ang unang puwang at line break.

    buhay na halimbawa

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

    Kapag ang code sa itaas ay pinagsama-sama at naisakatuparan, binabasa nito ang mga file na nilikha sa nakaraang seksyon, na gumagawa ng mga sumusunod na resulta:

    1: Ito 2: ay pagsubok para sa fprintf...

    3: Ito ay pagsubok para sa mga fput...

    Una, ang paraan ng fscanf() ay nagbabasa lamang ng This .dahil nakatagpo ito ng puwang sa likod. Pangalawa, tawagan ang functon fgets () para basahin ang natitirang bahagi hanggang sa dulo ng linya. Panghuli, tawagan ang fgets () para basahin nang buo ang pangalawang row.

    Binary I / O function

    Ang sumusunod na dalawang function ay ginagamit para sa binary input at output:

    size_t fread (walang bisa *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 );

    Ang parehong mga function ay binabasa at isinulat para sa mga bloke ng imbakan-karaniwang mga array o istruktura.

    Sa itaas tungkol sa pagbabasa at pagsulat ng C file ay kabilang sa HDV Phoelectron Technology Ltd., isang teknikal na operasyon ng software. At ang kumpanya para sa mga kagamitang nauugnay sa network (tulad ng: ACONU/ komunikasyonONU/ matalinoONU/ hiblaONU, atbp.) ay nagsama-sama ng isang malakas na software team, para sa bawat customer na i-customize ang mga eksklusibong pangangailangan na nangangailangan nito, hayaan din ang aming mga produkto na maging mas matalino at advanced.



    web聊天