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

    C, Pagbasa ug Pagsulat sa Dokumento

    Oras sa pag-post: Ago-11-2023

    Gihulagway kung giunsa paghimo, pag-abli, ug pagsira sa C programmer ang usa ka text file, o binary file.

    Ang usa ka file, nagpasabut nga usa ka serye sa mga byte, bisan kini usa ka text file o usa ka binary file, C Language, dili lamang naghatag ug pag-access sa labing taas nga lebel nga mga gimbuhaton, apan naghatag usab sa nagpahiping (OS) nga tawag sa pagproseso sa mga file sa aparato sa pagtipig. . Kini nga kapitulo magpatin-aw sa importante nga mga tawag sa pagdumala sa dokumento.

    bukas nga file

    Kasagaran gamit ang fopen () function sa paghimo og bag-ong file o pag-abli sa kasamtangan nga file, kini nga tawag mag-initialize sa usa ka butang sa tipo nga FILE nga naglangkob sa tanang gikinahanglan nga impormasyon aron makontrol ang dagan. Ania ang prototype niini nga function call:

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

    Dinhi ang filename usa ka string aron hingalan ang usa ka file, ang kantidad sa access mode mahimong usa sa mga musunod nga kantidad:

    sumbanan

    paghulagway

    r

    Ablihi ang usa ka kasamtangan nga text file nga nagtugot niini nga mabasa.

    w

    Ablihi ang usa ka text file nga nagtugot sa pagsulat sa file. Kung wala ang file, usa ka bag-ong file ang gihimo. Dinhi, gisulat sa imong programa ang sulud gikan sa sinugdanan sa file. Kung ang file anaa, kini putlon ngadto sa zero ang gitas-on ug isulat pag-usab.

    a

    Ablihi ang usa ka text file ug isulat sa file sa usa ka append mode. Kung wala ang file, usa ka bag-ong file ang gihimo. Dinhi, idugang sa imong programa ang sulud sa mga file nga naa na nimo.

    r+

    Ablihi ang usa ka text file nga nagtugot kanimo sa pagbasa ug pagsulat sa file.

    w+

    Ablihi ang usa ka text file nga nagtugot kanimo sa pagbasa ug pagsulat sa file. Kung ang file anaa na, ang file putlon ngadto sa zero ang gitas-on, ug kung ang file wala maglungtad, usa ka bag-ong file ang gihimo.

    a+

    Ablihi ang usa ka text file nga nagtugot kanimo sa pagbasa ug pagsulat sa file. Kung wala ang file, usa ka bag-ong file ang gihimo. Ang pagbasa magsugod sa sinugdanan sa file, ug ang pagsulat anaa lamang sa append mode.

    Kung giproseso ang binary file, gamita ang mosunud nga mode sa pag-access aron ilisan ang naa sa taas:

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

    sirado nga file

    Aron isira ang file, palihug gamita ang fclose() function. Ang prototype sa function mao ang mosunod:

    int fclose (FILE *fp);

    • Kung ang file malampuson nga gisirhan, ang fclose() function mobalik sa zero, ug kung ang sayup mobalik EOF. Kini nga function, sa tinuud, nagtangtang sa datos gikan sa buffer, nagsira sa file, ug nagpagawas sa tanan nga memorya nga gigamit alang sa kana nga file. Ang EOF usa ka kanunay nga gihubit sa header file stdio.h

    Ang C standard nga librarya naghatag og lain-laing mga gimbuhaton sa pagbasa ug pagsulat sa mga file pinaagi sa mga karakter o isip usa ka fixed-length string.

    Pagsulat sa file

    Ania ang pinakasimple nga mga gimbuhaton sa pagsulat sa mga karakter sa sapa:

    int fputc ( int c , FILE *fp );

    Ang function fputc () nagsulat sa bili sa karakter sa parameter c ngadto sa output stream nga gipunting sa fp. Kung malampuson ang pagsulat, ibalik niini ang sinulat nga karakter ug ang EOF kung adunay mahitabo nga sayup. Mahimo nimong gamiton ang mosunod nga function sa pagsulat sa usa ka string nga nagtapos sa usa ka null sa sapa:

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

    Ang function fputs () nagsulat sa string s sa output stream diin ang fp nagpunting sa. Kung molampos ang pagsulat, ibalik niini ang dili negatibo nga kantidad ug ang EOF kung adunay sayup. Mahimo usab nimo gamiton ang function sa int fprintf (FILE * fp, const char * format,...) nagsulat ug string sa file. Sulayi ang mosunod nga pananglitan:

    Mubo nga sulat: Siguroha nga ikaw adunay usa ka magamit nga direktoryo sa tmp, ug kung wala kini, kinahanglan nimo nga buhaton una kini sa imong kompyuter.

    Ang / tmp kasagaran usa ka temporaryo nga direktoryo sa sistema sa Linux. Kung nagdagan ka sa sistema sa Windows, kinahanglan nimo nga usbon kini sa usa ka naglungtad nga direktoryo sa lokal nga palibot, sama sa: C: \ tmp, D: \ tmp, ug uban pa.

    buhi nga ehemplo

    #apil int main () { FILE *fp = NULL ; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp , "Kini ang pagsulay para sa fprintf...\n"); fputs ("Kini ang pagsulay alang sa fputs...\n ", fp ); fclose (fp); }

    Kung ang kodigo sa ibabaw giipon ug gipatuman, nagmugna kini usa ka bag-ong file test.txt sa / tmp direktoryo. Ug nagsulat sa duha ka linya gamit ang duha ka lainlaing mga gimbuhaton. Atong basahon kini nga file sunod.

    Basaha ang file

    Ang mosunod mao ang pinakasimple nga function sa pagbasa sa usa ka karakter gikan sa usa ka file:

    int fgetc (FILE * fp);

    Ang fgetc () function nagbasa sa usa ka karakter gikan sa input file diin ang fp nagpunting. Ang pagbalik nga kantidad mao ang gibasa nga karakter ug ang EOF kung adunay sayup nga mahitabo. Ang mosunod nga function nagtugot kanimo sa pagbasa sa usa ka hilo gikan sa usa ka sapa:

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

    Ang function fgets () nagbasa sa n-1 nga mga karakter gikan sa input stream nga gitumong sa fp. Gikopya niini ang gibasa nga string sa buffer buf ug gidugangan ang usa ka null nga karakter sa katapusan aron tapuson ang string.

    Kung kini nga function makit-an ang usa ka putol nga linya nga karakter '\ n' o ang EOF sa katapusan sa file sa wala pa basahon ang katapusan nga karakter, unya ibalik ra sa nabasa nga mga karakter, lakip ang mga linya sa linya. Mahimo usab nimo gamiton ang int fscanf (FILE * fp, const char * format,...) function aron mabasa ang string gikan sa file, apan mohunong kini sa pagbasa kung makit-an ang una nga espasyo ug linya nga break.

    buhi nga ehemplo

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

    Kung ang kodigo sa ibabaw gihugpong ug gipatuman, kini nagbasa sa mga file nga gihimo sa miaging seksyon, nga nagpatungha sa mosunod nga mga resulta:

    1: Kini nga 2: mao ang pagsulay alang sa fprintf...

    3: Kini ang pagsulay alang sa mga fput...

    Una, ang pamaagi sa fscanf() mabasa lang Kini .tungod kay makasugat kini og luna sa likod. Ikaduha, tawga ang functon fgets () aron mabasa ang nahabilin nga bahin hangtod sa katapusan sa linya. Sa kataposan, tawga ang fgets () aron mabasa sa hingpit ang ikaduhang laray.

    Binary I/O function

    Ang mosunod nga duha ka mga gimbuhaton gigamit alang sa binary input ug output:

    size_t fread (walay *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 duha nga mga gimbuhaton gibasa ug gisulat alang sa mga bloke sa pagtipig-kasagaran mga array o istruktura.

    Sa ibabaw bahin sa C file pagbasa ug pagsulat iya sa HDV Phoelectron Technology Ltd., usa ka software teknikal nga operasyon. Ug ang kompanya alang sa kagamitan nga may kalabotan sa network (sama sa: ACONU/ komunikasyonONU/ intelihenteONU/ lanotONU, ug uban pa) naghiusa sa usa ka kusgan nga grupo sa software, alang sa matag kustomer nga ipasadya ang eksklusibo nga mga gipangayo nga nanginahanglan niini, tugoti usab ang among mga produkto nga labi ka intelihente ug abante.



    web聊天