• Giga@hdv-tech.com
  • 24H առցանց ծառայություն.
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • ինստագրամ

    Գ, Փաստաթղթերի ընթերցանություն և գրություն

    Հրապարակման ժամանակը՝ օգոստոսի 11-2023

    Նկարագրում է, թե ինչպես է C ծրագրավորողը ստեղծում, բացում և փակում տեքստային ֆայլ կամ երկուական ֆայլ:

    Ֆայլը նշանակում է բայթերի շարք, լինի դա տեքստային ֆայլ, թե երկուական ֆայլ, C Language-ը ոչ միայն ապահովում է մուտք դեպի վերին մակարդակի գործառույթներ, այլև ապահովում է հիմքում ընկած (ՕՀ) կանչ՝ ֆայլերը պահեստավորման սարքում մշակելու համար։ . Այս գլուխը կբացատրի փաստաթղթերի կառավարման կարևոր կոչերը:

    բաց ֆայլ

    Սովորաբար օգտագործելով fopen () ֆունկցիան նոր ֆայլ ստեղծելու կամ գոյություն ունեցող ֆայլ բացելու համար, այս կանչը սկզբնավորում է FILE տիպի օբյեկտ, որը պարունակում է բոլոր անհրաժեշտ տեղեկությունները հոսքը կառավարելու համար: Ահա այս ֆունկցիայի կանչի նախատիպը.

    FILE *fopen (const char * filename, const char * ռեժիմ);

    Այստեղ ֆայլի անունը ֆայլ անվանելու տող է, մուտքի ռեժիմի արժեքը կարող է լինել հետևյալ արժեքներից մեկը.

    օրինակը

    նկարագրությունը

    r

    Բացեք գոյություն ունեցող տեքստային ֆայլ, որը թույլ է տալիս կարդալ այն:

    w

    Բացեք տեքստային ֆայլ, որը թույլ է տալիս գրել ֆայլին: Եթե ​​ֆայլը գոյություն չունի, նոր ֆայլ է ստեղծվում: Այստեղ ձեր ծրագիրը գրում է բովանդակությունը ֆայլի սկզբից: Եթե ​​ֆայլը գոյություն ունի, այն կկտրվի զրոյական երկարությամբ և նորից կգրվի:

    a

    Բացեք տեքստային ֆայլ և գրեք ֆայլին հավելվածի ռեժիմում: Եթե ​​ֆայլը գոյություն չունի, նոր ֆայլ է ստեղծվում: Այստեղ ձեր ծրագիրը բովանդակություն է ավելացնում այն ​​ֆայլերին, որոնք արդեն ունեք:

    r+

    Բացեք տեքստային ֆայլ, որը թույլ է տալիս կարդալ և գրել ֆայլը:

    w+

    Բացեք տեքստային ֆայլ, որը թույլ է տալիս կարդալ և գրել ֆայլը: Եթե ​​ֆայլն արդեն գոյություն ունի, ֆայլը կրճատվում է մինչև զրոյական երկարություն, իսկ եթե ֆայլը գոյություն չունի, ստեղծվում է նոր ֆայլ:

    a+

    Բացեք տեքստային ֆայլ, որը թույլ է տալիս կարդալ և գրել ֆայլը: Եթե ​​ֆայլը գոյություն չունի, նոր ֆայլ է ստեղծվում: Ընթերցումը սկսվում է ֆայլի սկզբից, և գրությունը միայն հավելվածի ռեժիմում է:

    Եթե ​​մշակվում է երկուական ֆայլ, օգտագործեք հետևյալ մուտքի ռեժիմը՝ վերը նշվածը փոխարինելու համար.

    «rb», «wb», «ab», «rb+», «r+b», «wb+», «w+b», «ab+», «a+b»

    փակ ֆայլ

    Ֆայլը փակելու համար օգտագործեք fclose() ֆունկցիան։ Գործառույթի նախատիպը հետևյալն է.

    int fclose (FILE *fp);

    • Եթե ​​ֆայլը հաջողությամբ փակված է, fclose() ֆունկցիան վերադարձնում է զրո, իսկ եթե սխալը վերադարձնում է EOF: Այս ֆունկցիան, փաստորեն, հեռացնում է տվյալները բուֆերից, փակում է ֆայլը և ազատում այդ ֆայլի համար օգտագործվող ողջ հիշողությունը։ EOF-ը հաստատուն է, որը սահմանված է վերնագրի ֆայլում stdio.h

    C ստանդարտ գրադարանը տրամադրում է տարբեր գործառույթներ՝ ֆայլերը նիշերով կամ որպես ֆիքսված երկարությամբ տողի կարդալու և գրելու համար:

    Գրեք ֆայլին

    Ահա հոսքի մեջ նիշեր գրելու ամենապարզ գործառույթները.

    int fputc (int c, FILE *fp);

    Fputc () ֆունկցիան գրում է c պարամետրի նիշերի արժեքը ելքային հոսքի մեջ, որի վրա մատնանշում է fp-ը: Եթե ​​գրառումները հաջող են, այն վերադարձնում է գրված նիշը և EOF-ը, եթե սխալ է տեղի ունենում: Դուք կարող եք օգտագործել հետևյալ ֆունկցիան հոսքի վրա զրոյականով ավարտվող տող գրելու համար.

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

    Fputs () ֆունկցիան գրում է s տողը ելքային հոսքում, որտեղ fp-ը մատնանշում է: Եթե ​​գրառումները հաջողվում են, այն վերադարձնում է ոչ բացասական արժեք և EOF, եթե սխալ է տեղի ունենում: Կարող եք նաև օգտագործել int fprintf ֆունկցիան (FILE * fp, const char * ձևաչափ,...) ֆայլում տող է գրում: Փորձեք հետևյալ օրինակը.

    Նշում. Համոզվեք, որ ունեք հասանելի tmp գրացուցակ, և եթե այն գոյություն չունի, նախ պետք է այն ստեղծեք ձեր համակարգչում:

    / tmp սովորաբար ժամանակավոր գրացուցակ է Linux համակարգի վրա: Եթե ​​դուք աշխատում եք Windows համակարգով, դուք պետք է այն փոխեք տեղական միջավայրում գոյություն ունեցող գրացուցակի մեջ, ինչպիսիք են՝ C: \ tmp, D: \ tmp և այլն:

    կենդանի օրինակ

    #ներառել int main () { FILE *fp = NULL ; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp , "Սա փորձարկում է fprintf...\n"); fputs ("Սա փորձարկում է fputs...\n ", fp ); fclose (fp); }

    Երբ վերը նշված կոդը կազմվում և կատարվում է, այն ստեղծում է նոր ֆայլ test.txt / tmp գրացուցակում: Եվ գրում է երկու տողի վրա՝ օգտագործելով երկու տարբեր ֆունկցիաներ: Եկեք հաջորդիվ կարդանք այս ֆայլը:

    Կարդացեք ֆայլը

    Հետևյալը ֆայլից մեկ նիշ կարդալու ամենապարզ գործառույթն է.

    int fgetc (FILE * fp);

    Fgetc () ֆունկցիան կարդում է նիշ մուտքագրված ֆայլից, որին ցույց է տալիս fp-ը: Վերադարձի արժեքը ընթերցված նիշն է և EOF-ը, եթե սխալ է տեղի ունենում: Հետևյալ գործառույթը թույլ է տալիս կարդալ տողը հոսքից.

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

    Fgets () ֆունկցիան կարդում է n-1 նիշ fp-ով ուղղորդվող մուտքային հոսքից: Այն պատճենում է ընթերցված տողը բուֆերային բուֆում և վերջում ավելացնում է զրոյական նիշ՝ տողը վերջացնելու համար:

    Եթե ​​այս ֆունկցիան բախվում է կոտրված տողի «\ n» նիշին կամ ֆայլի վերջի EOF-ին, մինչև վերջին նիշը կարդալը, այն կվերադառնա միայն կարդացված նիշերին, ներառյալ տողերի ընդմիջումները: Դուք կարող եք նաև օգտագործել int fscanf (FILE * fp, const char * ձևաչափ,...) ֆունկցիան ֆայլից տողը կարդալու համար, բայց այն դադարում է կարդալ, երբ հանդիպում է առաջին բացատին և տողերի ընդմիջմանը:

    կենդանի օրինակ

    #ներառել 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); }

    Երբ վերը նշված կոդը կազմվում և կատարվում է, այն կարդում է նախորդ բաժնում ստեղծված ֆայլերը՝ ստանալով հետևյալ արդյունքները.

    1: Այս 2-ը փորձարկում է fprintf-ի համար...

    3: Սա փորձարկում է fputs-ի համար...

    Նախ, fscanf() մեթոդը կարդում է միայն This .քանի որ հետևի մասում հանդիպում է բացատ: Երկրորդ, զանգահարեք fgets () ֆունկցիան՝ կարդալու մնացած մասը մինչև տողի վերջը: Ի վերջո, զանգահարեք fgets ()՝ երկրորդ տողն ամբողջությամբ կարդալու համար:

    Երկուական I/O ֆունկցիա

    Երկուական մուտքի և ելքի համար օգտագործվում են հետևյալ երկու գործառույթները.

    size_t fread (void *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_t number_of_elements, FILE *a_file);

    Երկու գործառույթներն էլ ընթերցվում և գրվում են պահեստավորման բլոկների համար, սովորաբար զանգվածներ կամ կառուցվածքներ:

    C ֆայլի ընթերցման և գրելու մասին վերը պատկանում է HDV Phoelectron Technology Ltd.-ին, որը ծրագրային ապահովման տեխնիկական գործողություն է: Եվ ցանցին առնչվող սարքավորումների (օրինակ՝ ACONU/ հաղորդակցությունONU/ խելացիONU/ մանրաթելONUև այլն) համախմբել է հզոր ծրագրային թիմ, յուրաքանչյուր հաճախորդի համար հարմարեցնելու բացառիկ պահանջները, ովքեր դրա կարիքն ունեն, ինչպես նաև թույլ են տալիս մեր արտադրանքն ավելի խելացի և առաջադեմ:



    վեբ