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

    C, Famakiana sy fanoratana antontan-taratasy

    Fotoana fandefasana: Aug-11-2023

    Manoritsoritra ny fomba hamoronana, fanokafana ary fanakatonana rakitra lahatsoratra, na rakitra binary ny mpandrindra C.

    Ny rakitra iray dia midika hoe andian-bytes, na rakitra an-tsoratra na rakitra binary, C Language, dia tsy vitan'ny hoe manome ny fidirana amin'ireo fiasa ambony indrindra, fa manome ny antso fototra (OS) handaminana ny rakitra ao amin'ny fitaovana fitahirizana. . Ity toko ity dia hanazava ireo antso lehibe amin'ny fitantanana ny antontan-taratasy.

    open-file

    Matetika mampiasa ny fopen () asa hamoronana rakitra vaovao na hanokafana rakitra efa misy, ity antso ity dia manomboka zavatra iray amin'ny karazana FILE izay misy ny fampahalalana ilaina rehetra hifehezana ny fikorianan'ny rivotra. Ity ny prototype amin'ity antso ity:

    FILE *fopen (const char * anaran-drakitra, const char * mode);

    Ny anaran'ny rakitra dia tady ilazana rakitra iray, ny sandan'ny fomba fidirana dia mety ho iray amin'ireto soatoavina manaraka ireto:

    NOMEKO

    Description

    r

    Sokafy rakitra lahatsoratra efa misy izay ahafahana mamaky azy.

    w

    Sokafy rakitra an-tsoratra izay ahafahana manoratra amin'ny rakitra. Raha tsy misy ilay rakitra dia misy rakitra vaovao noforonina. Eto, ny programanao dia manoratra ny atiny hatrany am-piandohan'ny rakitra. Raha misy ilay rakitra dia hotapahina ho aotra ny halavany ary hosoratana indray.

    a

    Sokafy rakitra lahatsoratra ary manorata amin'ny rakitra amin'ny fomba append. Raha tsy misy ilay rakitra dia misy rakitra vaovao noforonina. Eto, ny programanao dia mampiditra votoaty amin'ireo rakitra efa anananao.

    r+

    Sokafy rakitra lahatsoratra ahafahanao mamaky sy manoratra ilay rakitra.

    w+

    Sokafy rakitra lahatsoratra ahafahanao mamaky sy manoratra ilay rakitra. Raha efa misy ilay rakitra dia tapaka ny halavan'ny rakitra ary raha tsy misy ilay rakitra dia misy rakitra vaovao noforonina.

    a+

    Sokafy rakitra lahatsoratra ahafahanao mamaky sy manoratra ilay rakitra. Raha tsy misy ilay rakitra dia misy rakitra vaovao noforonina. Ny famakiana dia manomboka eo am-piandohan'ny rakitra, ary ny fanoratana dia amin'ny fomba append ihany.

    Raha voahodina ny rakitra binary dia ampiasao ity fomba fidirana manaraka ity hanoloana ity voalaza etsy ambony ity:

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

    rakitra mihidy

    Raha hanakatona ny rakitra dia ampiasao ny fonction flose(). Ny prototype ny asa dia toy izao manaraka izao:

    int fclose (FILE *fp);

    • Raha toa ka mihidy soa aman-tsara ny rakitra, dia miverina aotra ny asa fclose(), ary raha miverina EOF ny fahadisoana. Ity asa ity, raha ny marina, dia manala ny angona ao amin'ny buffer, manidy ny rakitra, ary mamoaka ny fahatsiarovana rehetra ampiasaina amin'io rakitra io. EOF dia tsy tapaka voafaritra ao amin'ny lohapejy rakitra stdio.h

    Ny tranomboky mahazatra C dia manome fiasa isan-karazany hamakiana sy hanoratana rakitra amin'ny alàlan'ny tarehin-tsoratra na amin'ny tady maharitra.

    Soraty amin'ny rakitra

    Ireto ny asa tsotra indrindra hanoratana litera amin'ny stream:

    int fputc ( int c , FILE *fp );

    Ny asa fputc () dia manoratra ny sandan'ny toetran'ny parameter c ao amin'ny renirano mivoaka izay tondroin'ny fp. Raha mahomby ny fanoratana dia mamerina ny endri-tsoratra sy ny EOF raha misy hadisoana. Azonao atao ny mampiasa ity fiasa manaraka ity hanoratana tady mifarana amin'ny null amin'ny renirano:

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

    Ny asa fputs () dia manoratra ny tady s mankany amin'ny renirano mivoaka izay tondroin'ny fp. Raha mahomby ny fanoratana dia mamerina sanda tsy miiba ary ny EOF raha misy hadisoana. Azonao atao koa ny mampiasa ny fiasan'ny int fprintf (FILE * fp, const char * format,...) manoratra tady amin'ny rakitra. Andramo ity ohatra manaraka ity:

    Fanamarihana: Ataovy azo antoka fa manana lahatahiry tmp misy ianao, ary raha tsy misy izany dia mila mamorona azy amin'ny solosainao aloha ianao.

    / tmp dia matetika lahatahiry vonjimaika amin'ny rafitra Linux. Raha mihazakazaka amin'ny rafitra Windows ianao, dia mila manova azy amin'ny lahatahiry efa misy ao amin'ny tontolo eo an-toerana, toy ny: C: \ tmp, D: \ tmp, sns.

    ohatra velona

    #ao anatin'izany int main () { FILE *fp = NULL ; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp , "Ity dia fitsapana ho an'ny fprintf...\n"); fputs ("Ity dia fitsapana ho an'ny fputs...\n", fp ); fclose (fp); }

    Rehefa voaangona sy tanterahana ilay kaody etsy ambony, dia mamorona rakitra vaovao test.txt ao amin'ny lahatahiry / tmp. Ary manoratra amin'ny andalana roa mampiasa fiasa roa samihafa. Andeha hovakiantsika manaraka ity rakitra ity.

    Vakio ny rakitra

    Ity manaraka ity no asa tsotra indrindra ahafahana mamaky litera tokana avy amin'ny rakitra iray:

    int fgetc (FILE * fp);

    Ny asa fgetc () dia mamaky tarehintsoratra iray avy amin'ny rakitra fampidirana izay manondro ny fp. Ny sanda miverina dia ny toetra vakiana sy ny EOF raha misy hadisoana. Ity fiasa manaraka ity dia ahafahanao mamaky tady avy amin'ny stream iray:

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

    Ny asa fgets () dia mamaky tarehintsoratra n-1 avy amin'ny stream fampidirana tarihin'ny fp. Mandika ny tady vakiana amin'ny buffer buf izy io ary manisy tarehintsoratra tsy misy dikany amin'ny farany mba hamarana ilay tady.

    Raha toa ka mifanena amin'ny tsipika tapaka '\ n' na ny EOF amin'ny faran'ny rakitra ity asa ity alohan'ny hamakiana ny endri-tsoratra farany, dia miverina amin'ny tarehintsoratra novakiana ihany, anisan'izany ny fiatoana andalana. Azonao atao ihany koa ny mampiasa ny int fscanf (FILE * fp, const char * format,...) mba hamakiana ny tady avy amin'ny rakitra, fa mitsahatra mamaky izany rehefa tojo ny toerana voalohany sy ny fiatoana andalana.

    ohatra velona

    #ao anatin'izany 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); }

    Rehefa natambatra sy novonoina ilay kaody etsy ambony, dia mamaky ireo rakitra noforonina tao amin'ny fizarana teo aloha izy, ka miteraka vokatra manaraka:

    1: Ity 2 ity: dia fitsapana ho an'ny fprintf...

    3: Ity dia fitsapana ho an'ny fputs...

    Voalohany, ny fomba fscanf() dia mamaky an'ity ihany .satria mifanena amin'ny habaka ao ambadika. Faharoa, antsoy ny functon fgets () mba hamakiana ny ampahany sisa tavela hatramin'ny faran'ny andalana. Farany, antsoy ny fgets () mba hamakiana tanteraka ny laharana faharoa.

    Binary I / O function

    Ireto asa roa manaraka ireto dia ampiasaina amin'ny fampidirana sy famoahana binary:

    size_t fread (void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_rakitra ); size_t fwrite (const void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file );

    Ireo fiasa roa ireo dia vakiana sy soratana ho an'ny bloc fitehirizana-matetika array na rafitra.

    Eo ambony momba ny famakiana sy fanoratana rakitra C dia an'ny HDV Phoelectron Technology Ltd., fiasa ara-teknika rindrambaiko. Ary ny orinasa ho an'ny fitaovana mifandraika amin'ny tambajotra (toy ny: ACONU/ fifandraisanaONU/ manan-tsainaONU/ fibreONU, sns.) dia nanangona ekipa rindrambaiko matanjaka, ho an'ny mpanjifa tsirairay dia manamboatra ny fitakiana manokana izay mila izany, avelao koa ny vokatray ho marani-tsaina sy mandroso kokoa.



    web聊天