• Giga@hdv-tech.com
  • សេវាកម្មអនឡាញ 24H៖
    • 7189078 គ
    • sns03
    • 6660e33e
    • youtube 拷贝
    • instagram

    C, ការអាន និងសរសេរឯកសារ

    ពេលវេលាផ្សាយ៖ សីហា-១១-២០២៣

    ពិពណ៌នាអំពីរបៀបដែលអ្នកសរសេរកម្មវិធី C បង្កើត បើក និងបិទឯកសារអត្ថបទ ឬឯកសារគោលពីរ។

    ឯកសារ មានន័យថាជាស៊េរីនៃបៃ មិនថាវាជាឯកសារអត្ថបទ ឬឯកសារគោលពីរ ភាសា C មិនត្រឹមតែផ្តល់នូវការចូលប្រើមុខងារកម្រិតកំពូលប៉ុណ្ណោះទេ ប៉ុន្តែថែមទាំងផ្តល់នូវការហៅ (OS) មូលដ្ឋានដើម្បីដំណើរការឯកសារនៅលើឧបករណ៍ផ្ទុក។ .ជំពូកនេះនឹងពន្យល់អំពីការហៅទូរស័ព្ទសំខាន់ៗក្នុងការគ្រប់គ្រងឯកសារ។

    បើក​ឯកសារ

    ជាធម្មតាដោយប្រើមុខងារ fopen () ដើម្បីបង្កើតឯកសារថ្មី ឬបើកឯកសារដែលមានស្រាប់ ការហៅនេះចាប់ផ្តើមវត្ថុនៃប្រភេទ FILE ដែលមានព័ត៌មានចាំបាច់ទាំងអស់ដើម្បីគ្រប់គ្រងលំហូរ។នេះជាគំរូដើមនៃការហៅមុខងារនេះ៖

    ឯកសារ * fopen ( const char * ឈ្មោះឯកសារ , const char * របៀប );

    នៅទីនេះឈ្មោះឯកសារគឺជាខ្សែអក្សរសម្រាប់ដាក់ឈ្មោះឯកសារ តម្លៃនៃរបៀបចូលប្រើអាចជាតម្លៃមួយក្នុងចំណោមតម្លៃខាងក្រោម៖

    លំនាំ

    ការពិពណ៌នា

    r

    បើកឯកសារអត្ថបទដែលមានស្រាប់ដែលអនុញ្ញាតឱ្យវាអាន។

    w

    បើកឯកសារអត្ថបទដែលអនុញ្ញាតឱ្យសរសេរទៅឯកសារ។ប្រសិនបើឯកសារមិនមានទេ ឯកសារថ្មីមួយត្រូវបានបង្កើត។នៅទីនេះ កម្មវិធីរបស់អ្នកសរសេរមាតិកាពីដើមឯកសារ។ប្រសិនបើឯកសារមាន វានឹងកាត់ឱ្យខ្លីទៅសូន្យ ហើយសរសេរឡើងវិញ។

    a

    បើកឯកសារអត្ថបទ ហើយសរសេរទៅឯកសារក្នុងទម្រង់បន្ថែម។ប្រសិនបើឯកសារមិនមានទេ ឯកសារថ្មីមួយត្រូវបានបង្កើត។នៅទីនេះ កម្មវិធីរបស់អ្នកបន្ថែមមាតិកាទៅឯកសារដែលអ្នកមានរួចហើយ។

    r+

    បើកឯកសារអត្ថបទដែលអនុញ្ញាតឱ្យអ្នកអាន និងសរសេរឯកសារ។

    w+

    បើកឯកសារអត្ថបទដែលអនុញ្ញាតឱ្យអ្នកអាន និងសរសេរឯកសារ។ប្រសិនបើឯកសារមានរួចហើយ ឯកសារត្រូវបានកាត់ឱ្យខ្លីទៅសូន្យ ហើយប្រសិនបើឯកសារមិនមានទេ ឯកសារថ្មីមួយត្រូវបានបង្កើត។

    a+

    បើកឯកសារអត្ថបទដែលអនុញ្ញាតឱ្យអ្នកអាន និងសរសេរឯកសារ។ប្រសិនបើឯកសារមិនមានទេ ឯកសារថ្មីមួយត្រូវបានបង្កើត។ការអានចាប់ផ្តើមនៅដើមឯកសារ ហើយការសរសេរគឺនៅក្នុងរបៀបបន្ថែមប៉ុណ្ណោះ។

    ប្រសិនបើឯកសារគោលពីរដែលបានដំណើរការ សូមប្រើរបៀបចូលប្រើខាងក្រោមដើម្បីជំនួសឯកសារខាងលើ៖

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

    ឯកសារបិទ

    ដើម្បីបិទឯកសារ សូមប្រើមុខងារ fclose()។គំរូនៃមុខងារមានដូចខាងក្រោម៖

    int fclose ( ឯកសារ * 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 * format, ... ) សរសេរខ្សែអក្សរទៅឯកសារ។សាកល្បងឧទាហរណ៍ខាងក្រោម៖

    ចំណាំ៖ ត្រូវប្រាកដថាអ្នកមានថត tmp ដែលអាចប្រើបាន ហើយប្រសិនបើវាមិនមានទេ អ្នកត្រូវបង្កើតវានៅលើកុំព្យូទ័ររបស់អ្នកជាមុនសិន។

    / tmp ជាធម្មតាជាថតបណ្តោះអាសន្ននៅលើប្រព័ន្ធលីនុច។ប្រសិនបើអ្នកដំណើរការលើប្រព័ន្ធវីនដូ អ្នកត្រូវកែប្រែវាទៅជាថតដែលមានស្រាប់នៅក្នុងបរិស្ថានមូលដ្ឋាន ដូចជា៖ 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 ( ឯកសារ * fp );

    មុខងារ fgetc () អានតួអក្សរមួយពីឯកសារបញ្ចូលដែលចំណុច fp ។តម្លៃត្រឡប់គឺជាតួអក្សរដែលបានអាន និង EOF ប្រសិនបើកំហុសកើតឡើង។មុខងារខាងក្រោមអនុញ្ញាតឱ្យអ្នកអានខ្សែអក្សរពីស្ទ្រីម៖

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

    មុខងារ fgets () អានតួអក្សរ n-1 ពីស្ទ្រីមបញ្ចូលដែលដឹកនាំដោយ fp ។វាចម្លងខ្សែអក្សរដែលបានអានទៅ buffer buf ហើយបន្ថែមតួអក្សរ null នៅខាងចុង ដើម្បីបញ្ចប់ខ្សែអក្សរ។

    ប្រសិនបើមុខងារនេះជួបប្រទះតួអក្សរបន្ទាត់ខូច '\n' ឬ EOF នៃចុងបញ្ចប់នៃឯកសារ មុនពេលអានតួអក្សរចុងក្រោយ នោះគ្រាន់តែត្រលប់ទៅតួអក្សរដែលបានអាន រួមទាំងការបំបែកបន្ទាត់។អ្នកក៏អាចប្រើមុខងារ int fscanf (FILE * fp, const char * format,...) ដើម្បីអានខ្សែអក្សរពីឯកសារ ប៉ុន្តែវាឈប់អាននៅពេលជួបចន្លោះដំបូង និងការបំបែកបន្ទាត់។

    ឧទាហរណ៍រស់នៅ

    # រួមបញ្ចូល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, (ឯកសារ *) fp );printf("2: %s \n ", buff );fgets (buff , 255, (ឯកសារ *) fp );printf("3: %s \n ", buff );fclose (fp);}

    នៅពេលដែលកូដខាងលើត្រូវបានចងក្រង និងប្រតិបត្តិ វាអានឯកសារដែលបានបង្កើតនៅក្នុងផ្នែកមុន ដោយបង្កើតលទ្ធផលដូចខាងក្រោម៖

    1: នេះ 2: កំពុងសាកល្បងសម្រាប់ fprintf...

    3: នេះគឺជាការសាកល្បងសម្រាប់ fputs...

    ដំបូង វិធីសាស្ត្រ fscanf() អានតែ This .ព្រោះវាជួបចន្លោះនៅខាងក្រោយ។ទីពីរ ហៅ Functon fgets () ដើម្បីអានផ្នែកដែលនៅសល់រហូតដល់ចុងបញ្ចប់នៃបន្ទាត់។ជាចុងក្រោយ សូមហៅទៅ fgets () ដើម្បីអានជួរទីពីរទាំងស្រុង។

    មុខងារ Binary I/O

    អនុគមន៍​ពីរ​ខាង​ក្រោម​ត្រូវ​បាន​ប្រើ​សម្រាប់​ការ​បញ្ចូល​និង​លទ្ធផល​គោលពីរ៖

    size_t fread (ចាត់ទុកជាមោឃៈ *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 );

    មុខងារទាំងពីរត្រូវបានអាន និងសរសេរសម្រាប់ប្លុកផ្ទុក - ជាធម្មតាអារេ ឬរចនាសម្ព័ន្ធ។

    ខាងលើអំពីការអាន និងការសរសេរឯកសារ C ជាកម្មសិទ្ធិរបស់ HDV Phoelectron Technology Ltd. ដែលជាប្រតិបត្តិការបច្ចេកទេសផ្នែកទន់។និងក្រុមហ៊ុនសម្រាប់ឧបករណ៍ទាក់ទងនឹងបណ្តាញ (ដូចជា៖ ACONU/ ការ​ទំនាក់ទំនងONU/ ឆ្លាតវៃONU/ ជាតិសរសៃONUល) បានប្រមូលផ្តុំក្រុមកម្មវិធីដ៏មានអានុភាព សម្រាប់អតិថិជនគ្រប់រូប ប្ដូរតាមបំណងនូវតម្រូវការផ្តាច់មុខដែលត្រូវការវា ថែមទាំងអនុញ្ញាតឱ្យផលិតផលរបស់យើងកាន់តែឆ្លាតវៃ និងកម្រិតខ្ពស់។



    គេហទំព័រ