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

    C, Panui Panui me te Tuhituhi

    Wā tuku: Akuhata-11-2023

    He whakaahua me pehea te hanga, te whakatuwhera me te kati a te kaihātaka C i te konae kupu, i te konae rua ranei.

    Ko te konae, ko te tikanga he raupapa paita, ahakoa he konae kupu, he konae rua ranei, C Reo, ehara i te mea ka uru noa ki nga mahi o runga, engari ka tukuna ano te waea (OS) ki te tukatuka i nga konae kei runga i te taputapu rokiroki. . Ma tenei upoko e whakamarama nga karanga nui i roto i te whakahaere tuhinga.

    tuwhera-kōnae

    I te nuinga o te wa ka whakamahi i te mahi fopen () ki te hanga i tetahi konae hou, ki te whakatuwhera ranei i tetahi konae e noho ana, ka arawhiti tenei waea i tetahi ahanoa o te momo FILE kei roto nga korero katoa hei whakahaere i te rere. Anei te tauira o tenei waea mahi:

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

    I konei ko te ingoa kōnae he aho hei whakaingoa i tetahi konae, ko te uara o te aratau uru tetahi o nga uara e whai ake nei:

    tauira

    whakaahuatanga

    r

    Whakatuwheratia he konae tuhinga e taea ai te panui.

    w

    Whakatuwheratia he konae tuhinga ka taea te tuhi ki te konae. Mena karekau te konae, ka hangaia he konae hou. I konei, ka tuhia e to hotaka nga korero mai i te timatanga o te konae. Mena kei te noho tonu te konae, ka tapahia ki te kore te roa ka tuhia ano.

    a

    Tuwherahia he konae tuhinga ka tuhi ki te konae ma te aratau taapiri. Mena karekau te konae, ka hangaia he konae hou. I konei, ka taapirihia e to papatono nga ihirangi ki nga konae kei a koe.

    r+

    Whakatuwherahia he konae tuhinga ka taea e koe te panui me te tuhi i te konae.

    w+

    Whakatuwherahia he konae tuhinga ka taea e koe te panui me te tuhi i te konae. Mēnā kei te tīariari kē te kōnae, ka poroa te kōnae ki te kore te roa, ā, ki te kore te kōnae, ka waihangatia he kōnae hōu.

    a+

    Whakatuwherahia he konae tuhinga ka taea e koe te panui me te tuhi i te konae. Mena karekau te konae, ka hangaia he konae hou. Ka timata te panui i te timatanga o te konae, a ko te tuhi kei te aratau taapiri anake.

    Mena ka tukatukahia te konae rua, whakamahia te aratau uru e whai ake nei hei whakakapi i nga korero o runga ake nei:

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

    kōnae kati

    Hei kati i te konae, whakamahia te mahi fclose(). Ko te tauira o te mahi e whai ake nei:

    int fclose ( FILE *fp );

    • Ki te katia pai te konae, ka hoki mai te mahi fclose() ki te kore, a mena ka hoki mai te hapa EOF. Ko tenei mahi, ko te tikanga, ka tango i nga raraunga mai i te papaa, ka kati i te konae, ka tukuna nga mahara katoa i whakamahia mo taua konae. Ko te EOF he taumau kua tautuhia ki te konae pane stdio.h

    Ko te whare pukapuka paerewa C e whakarato ana i nga momo mahi hei panui me te tuhi i nga konae ma nga tohu, hei aho ranei te roa.

    Tuhia ki te kōnae

    Anei nga mahi ngawari ki te tuhi i nga tohu ki te awa:

    int fputc ( int c , FILE *fp );

    Ko te mahi fputc () ka tuhi i te uara tohu o te tawhā c ki te awa putanga e tohuhia ana e te fp. Mena ka angitu nga tuhi, ka whakahokia mai te ahua tuhi me te EOF mena ka puta he hapa. Ka taea e koe te whakamahi i te mahi e whai ake nei hei tuhi i tetahi aho e mutu ana ki te null ki te awa:

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

    Ko te mahi fputs () ka tuhi i te aho s ki te awa whakaputa e tohu ana te fp. Mena ka angitu nga tuhi, ka whakahokia mai he uara kore-kino me te EOF mena ka puta he hapa. Ka taea hoki e koe te whakamahi i te mahi a int fprintf (FILE * fp, const char * format,...) tuhi aho ki te konae. Whakamātauria te tauira e whai ake nei:

    Tuhipoka:Kia mohio kei a koe he whaiaronga tmp e waatea ana, a mena karekau, me hanga e koe ki to rorohiko i te tuatahi.

    Ko te / tmp he whaiaronga rangitahi i runga i te punaha Linux. Mena kei te whakahaere koe i runga i te punaha Windows, me whakarere ke koe ki tetahi raarangi i te taiao o te rohe, penei: C: \ tmp, D: \ tmp, etc.

    tauira ora

    #whakauru int matua () { FILE *fp = NULL ; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp , "Kei te whakamatautau tenei mo te fprintf...\n "); fputs ("He whakamatautau tenei mo nga fputs...\n ", fp ); fclose (fp); }

    Ka whakahiatohia te waehere i runga ake nei ka mahia, ka hangaia he konae hou test.txt i roto i te whaiaronga / tmp. A ka tuhi ki nga rarangi e rua ma te whakamahi i nga mahi rereke e rua. Kia panuihia tenei konae ka whai ake.

    Pānuihia te kōnae

    E whai ake nei te mahi ngawari ki te panui i te ahua kotahi mai i te konae:

    int fgetc ( FILE * fp );

    Ko te mahi fgetc () he panui i tetahi ahuatanga mai i te konae whakaurunga e tohu ana te fp. Ko te uara whakahoki ko te ahua panui me te EOF mena ka puta he hapa. Ko te mahi e whai ake nei ka taea e koe te panui i tetahi aho mai i te awa:

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

    Ko te mahi fgets () ka panui i nga tohu n-1 mai i te awa whakauru e tohutohuhia ana e te fp. Ka kape i te aho panui ki te buffer buf ka apitihia he tohu kore ki te mutunga hei whakamutu i te aho.

    Mēnā ka tūtaki tēnei taumahi ki tētahi pūāhua rārangi whati '\ n' ranei te EOF o te mutunga o te kōnae i mua i te panui i te pūāhua whakamutunga, ka hoki ki ngā pūāhua pānui, tae atu ki ngā wehenga rārangi. Ka taea hoki e koe te whakamahi i te int fscanf (FILE * fp, const char * format,...) hei panui i te aho mai i te konae, engari ka mutu te panui ina tutaki i te waahi tuatahi me te wehenga raina.

    tauira ora

    #whakauru int matua () { 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); }

    Ka whakahiatohia, ka mahia te waehere i runga ake nei, ka panuihia nga konae i hangaia i te waahanga o mua, ka puta nga hua e whai ake nei:

    1: Ko tenei 2: he whakamatautau mo te fprintf...

    3: He whakamatautau tenei mo nga fputs...

    Tuatahi, ko te tikanga o fscanf() ka panui noa i tenei .no te mea ka tutaki ki tetahi waahi kei muri. Tuarua, karangahia te functon fgets () hei panui i te toenga o te wahanga tae noa ki te mutunga o te rarangi. Ka mutu, waeahia nga fgets () kia panui katoa te rarangi tuarua.

    Mahi-rua I/O

    Ko nga mahi e rua e whai ake nei ka whakamahia mo te whakauru me te whakaputanga rua:

    rahi_t fread (kahore *ptr , rahi_t rahi_o_huānga , rahi_t tau_o_huānga , FILE *a_kōnae ); rahi_t tuhi (const void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_kōnae );

    Ko nga mahi e rua ka panuihia me te tuhi mo nga poraka rokiroki-te nuinga o te waa he raupapa, he hanganga ranei.

    Kei runga ake mo te panui me te tuhi konae C na HDV Phoelectron Technology Ltd., he mahi hangarau rorohiko. Me te kamupene mo nga taputapu e pa ana ki te whatunga (penei: ACONU/ whakawhitiwhitinga koreroONU/ mohioONU/ mukaONU, me etahi atu) kua whakahiatohia he roopu rorohiko kaha, mo nga kaihoko katoa e whakarite ana i nga tono motuhake e hiahia ana, kia mohio hoki a maatau hua.



    tukutuku聊天