• Giga@hdv-tech.com
  • Seirbheis air-loidhne 24H:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube airson
    • instagram

    C, Leughadh Sgrìobhainnean agus Sgrìobhadh

    Ùine puist: Lùnastal-11-2023

    A’ toirt cunntas air mar a bhios am prògramadair C a’ cruthachadh, a’ fosgladh, agus a’ dùnadh faidhle teacsa, no faidhle dàna.

    Tha faidhle, a’ ciallachadh sreath de bytes, ge bith an e faidhle teacsa no faidhle binary a th’ ann, tha C Language, chan e a-mhàin a’ toirt cothrom air na gnìomhan àrd-ìre, ach tha e cuideachd a’ toirt seachad a’ ghairm bhunaiteach (OS) gus faidhlichean a phròiseasadh air an inneal stòraidh .Mìnichidh a’ chaibideil seo na gairmean cudromach ann an riaghladh sgrìobhainnean.

    fosgailte-faidhle

    Mar as trice a’ cleachdadh an gnìomh fopen () gus faidhle ùr a chruthachadh no faidhle a tha ann mu thràth fhosgladh, bidh an gairm seo a’ tòiseachadh nì den t-seòrsa FILE anns a bheil a h-uile fiosrachadh riatanach gus smachd a chumail air an t-sruth.Seo am prototype den ghairm gnìomh seo:

    FILE * fopen (const char * ainm faidhle, modh const char *);

    An seo tha ainm faidhle na shreang airson faidhle ainmeachadh, faodaidh luach a’ mhodh inntrigidh a bhith mar aon de na luachan a leanas:

    pàtran

    tuairisgeul

    r

    Fosgail faidhle teacsa a tha ann mu thràth a leigeas leat a leughadh.

    w

    Fosgail faidhle teacsa a leigeas leat sgrìobhadh chun fhaidhle.Mura h-eil am faidhle ann, thèid faidhle ùr a chruthachadh.An seo, bidh am prògram agad a’ sgrìobhadh an t-susbaint bho thoiseach an fhaidhle.Ma tha am faidhle ann, thèid a ghearradh sìos gu fad neoni agus ath-sgrìobhadh.

    a

    Fosgail faidhle teacsa agus sgrìobh am faidhle ann am modh leas-phàipear.Mura h-eil am faidhle ann, thèid faidhle ùr a chruthachadh.An seo, bidh am prògram agad a’ ceangal susbaint ris na faidhlichean a th’ agad mu thràth.

    r+

    Fosgail faidhle teacsa a leigeas leat am faidhle a leughadh agus a sgrìobhadh.

    w+

    Fosgail faidhle teacsa a leigeas leat am faidhle a leughadh agus a sgrìobhadh.Ma tha am faidhle ann mu thràth, thèid am faidhle a ghearradh sìos gu fad neoni, agus mura h-eil am faidhle ann, thèid faidhle ùr a chruthachadh.

    a+

    Fosgail faidhle teacsa a leigeas leat am faidhle a leughadh agus a sgrìobhadh.Mura h-eil am faidhle ann, thèid faidhle ùr a chruthachadh.Tòisichidh an leughadh aig toiseach an fhaidhle, agus chan eil an sgrìobhadh ach ann am modh leasachail.

    Ma thèid faidhle dà-chànanach a phròiseasadh, cleachd am modh ruigsinneachd a leanas gus am fear gu h-àrd a chuir an àite:

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

    faidhle dùinte

    Gus am faidhle a dhùnadh, cleachd an gnìomh fclose().Tha prototype an gnìomh mar a leanas:

    int fclose ( FILE * fp );

    • Ma thèid am faidhle a dhùnadh gu soirbheachail, tillidh an gnìomh fclose () neoni, agus ma thilleas a’ mhearachd EOF.Bidh an gnìomh seo, gu dearbh, a’ toirt air falbh an dàta bhon bhufair, a’ dùnadh am faidhle, agus a’ leigeil ma sgaoil a’ chuimhne gu lèir a thathar a’ cleachdadh airson an fhaidhle sin.Tha EOF air a mhìneachadh gu cunbhalach anns an fhaidhle header stdio.h

    Tha leabharlann àbhaisteach C a’ toirt seachad diofar ghnìomhan airson faidhlichean a leughadh agus a sgrìobhadh le caractaran no mar shreang fad stèidhichte.

    Sgrìobh dhan fhaidhle

    Seo na gnìomhan as sìmplidh airson caractaran a sgrìobhadh don t-sruth:

    int fputc ( int c , FILE * fp );

    Tha an gnìomh fputc () a’ sgrìobhadh luach caractar a’ pharamadair c a-steach don t-sruth toraidh a tha am fp a’ comharrachadh.Ma shoirbhicheas leis na sgrìobhaidhean, tillidh e an caractar sgrìobhte agus an EOF ma thachras mearachd.Faodaidh tu an gnìomh a leanas a chleachdadh gus sreang a sgrìobhadh a’ crìochnachadh le null dhan t-sruth:

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

    Bidh an gnìomh fputs () a’ sgrìobhadh an t-sreang s chun t-sruth toraidh far a bheil an fp a’ comharrachadh.Ma shoirbhicheas leis na sgrìobhaidhean, tillidh e luach neo-àicheil agus an EOF ma thachras mearachd.Faodaidh tu cuideachd gnìomh int fprintf a chleachdadh (FILE * fp, cruth const char *, ...) a’ sgrìobhadh sreang chun fhaidhle.Feuch an eisimpleir a leanas:

    Nota: Dèan cinnteach gu bheil eòlaire tmp agad, agus mura h-eil e ann, feumaidh tu a chruthachadh air a’ choimpiutair agad an toiseach.

    / tmp mar as trice na eòlaire sealach air an t-siostam Linux.Ma ruitheas tu air siostam Windows, feumaidh tu atharrachadh gu eòlaire a tha ann san àrainneachd ionadail, leithid: C: \ tmp, D: \ tmp, msaa.

    eisimpleir beò

    # gabhail a-steachint prìomh () { FILE * fp = NULL ;fp = fopen ("/tmp/test.txt", "w+");fprintf (fp , "Tha seo a' dèanamh deuchainn airson fprintf...\n");fputs ("Tha seo a' dèanamh deuchainn airson fputs...\n", fp );fclose (fp);}

    Nuair a thèid an còd gu h-àrd a chur ri chèile agus a chur gu bàs, bidh e a 'cruthachadh faidhle test.txt ùr anns an eòlaire / tmp.Agus a’ sgrìobhadh gu dà loidhne a’ cleachdadh dà ghnìomh eadar-dhealaichte.Leughaidh sinn am faidhle seo an ath rud.

    Leugh am faidhle

    Is e na leanas an gnìomh as sìmplidh airson aon charactar a leughadh bho fhaidhle:

    int fgetc ( FILE * fp );

    Bidh an gnìomh fgetc () a’ leughadh caractar bhon fhaidhle cuir a-steach ris a bheil am fp a’ comharrachadh.Is e an luach tilleadh an caractar leughaidh agus an EOF ma thachras mearachd.Leigidh an gnìomh a leanas leat sreang a leughadh bho shruth:

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

    Tha an gnìomh fgets () a’ leughadh n-1 caractaran bhon t-sruth cuir a-steach air a stiùireadh le fp.Bidh e a’ dèanamh leth-bhreac den t-sreang leughaidh ris a’ bhufair bufair agus a’ cur caractar null ris aig an deireadh gus crìoch a chur air an t-sreang.

    Ma thachras an gnìomh seo ri caractar loidhne bhriste '\n' no an EOF aig deireadh an fhaidhle mus leugh thu an caractar mu dheireadh, cha till ach dha na caractaran a leugh, a' gabhail a-steach briseadh loidhne.Faodaidh tu cuideachd an gnìomh int fscanf (FILE * fp, const char * format, ...) a chleachdadh gus an sreang bhon fhaidhle a leughadh, ach stadaidh e leughadh nuair a thachras tu air a’ chiad àite agus briseadh loidhne.

    eisimpleir beò

    # gabhail a-steachint prìomh () { 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);}

    Nuair a thèid an còd gu h-àrd a chur ri chèile agus a chur an gnìomh, leughaidh e na faidhlichean a chaidh a chruthachadh san earrann roimhe, a’ toirt a-mach na toraidhean a leanas:

    1: Tha an 2 seo: a’ dèanamh deuchainn airson fprintf...

    3: Tha seo a’ dèanamh deuchainn airson fputs...

    An toiseach, chan eil am modh fscanf() a' leughadh seo ach .oir tha e a' tighinn tarsainn air àite air a' chùl.San dàrna h-àite, cuir fios gu functon fgets () gus am pàirt a tha air fhàgail a leughadh gu deireadh na loidhne.Mu dheireadh, cuir fòn gu fgets () gus an dàrna sreath a leughadh gu tur.

    Gnìomh binary I/O

    Tha an dà ghnìomh a leanas air an cleachdadh airson cuir a-steach agus toradh binary:

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

    Tha an dà ghnìomh air an leughadh agus air an sgrìobhadh airson blocaichean stòraidh - mar as trice arrays no structaran.

    Gu h-àrd mu dheidhinn C buinidh leughadh is sgrìobhadh fhaidhlichean do HDV Phoelectron Technology Ltd., gnìomhachd teicnigeach bathar-bog.Agus a’ chompanaidh airson uidheamachd co-cheangailte ris an lìonra (leithid: ACONU/ conaltradhONU/ tuigseachONU/snàithleachONU, msaa) air sgioba bathar-bog cumhachdach a thoirt còmhla, airson a h-uile neach-ceannach na h-iarrtasan sònraichte a tha feumach air a ghnàthachadh, cuideachd leig leis na toraidhean againn nas tùrail agus adhartach.



    lìn 天