• Giga@hdv-tech.com
  • 24H अनलाइन सेवा:
    • 7189078c
    • sns03
    • 6660e33e
    • youtube 拷贝
    • इन्स्टाग्राम

    सी, कागजात पढ्ने र लेखन

    पोस्ट समय: अगस्ट-11-2023

    सी प्रोग्रामरले पाठ फाइल, वा बाइनरी फाइल कसरी सिर्जना गर्छ, खोल्छ र बन्द गर्छ भनेर वर्णन गर्दछ।

    फाइल, बाइट्सको एक श्रृंखला हो, चाहे यो पाठ फाइल होस् वा बाइनरी फाइल, C भाषा, ले शीर्ष स्तरका प्रकार्यहरूमा पहुँच मात्र प्रदान गर्दैन, तर भण्डारण उपकरणमा फाइलहरू प्रशोधन गर्न अन्तर्निहित (OS) कल पनि प्रदान गर्दछ। । यस अध्यायले कागजात व्यवस्थापनमा महत्त्वपूर्ण कलहरू व्याख्या गर्नेछ।

    खुला फाइल

    सामान्यतया नयाँ फाइल सिर्जना गर्न वा अवस्थित फाइल खोल्नको लागि fopen () प्रकार्य प्रयोग गरी, यो कलले FILE प्रकारको वस्तु प्रारम्भ गर्दछ जसमा प्रवाह नियन्त्रण गर्न आवश्यक सबै जानकारी समावेश हुन्छ। यहाँ यस प्रकार्य कल को प्रोटोटाइप छ:

    फाइल *फोपेन ( 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 () ले fp ले पोइन्ट गर्ने आउटपुट स्ट्रिममा प्यारामिटर c को क्यारेक्टर मान लेख्छ। यदि लेखहरू सफल छन् भने, यसले लिखित क्यारेक्टर र EOF फर्काउँछ यदि त्रुटि हुन्छ। तपाइँ स्ट्रिममा शून्यसँग समाप्त भएको स्ट्रिङ लेख्न निम्न प्रकार्य प्रयोग गर्न सक्नुहुन्छ:

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

    प्रकार्य fputs () ले स्ट्रिङ s लाई आउटपुट स्ट्रिममा लेख्छ जहाँ fp ले पोइन्ट गर्छ। यदि लेखहरू सफल भएमा, यसले गैर-नकारात्मक मान र त्रुटि देखा पर्दा EOF फर्काउँछ। तपाईले int fprintf को प्रकार्य पनि प्रयोग गर्न सक्नुहुन्छ (FILE * fp, const char * format,...) फाइलमा स्ट्रिङ लेख्छ। निम्न उदाहरण प्रयास गर्नुहोस्:

    नोट: निश्चित गर्नुहोस् कि तपाइँसँग उपलब्ध tmp डाइरेक्टरी छ, र यदि यो अवस्थित छैन भने, तपाइँ यसलाई तपाइँको कम्प्युटरमा पहिले सिर्जना गर्न आवश्यक छ।

    / tmp सामान्यतया लिनक्स प्रणालीमा अस्थायी डाइरेक्टरी हो। यदि तपाइँ Windows प्रणालीमा चल्नुहुन्छ भने, तपाइँ यसलाई स्थानीय वातावरणमा अवस्थित डाइरेक्टरीमा परिमार्जन गर्न आवश्यक छ, जस्तै: C: \ tmp, D: \ tmp, आदि।

    जीवित उदाहरण

    #समावेश गर्नुहोस् int मुख्य () { फाइल * fp = NULL ; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp , "यो fprintf...\n" को लागि परीक्षण गर्दैछ); fputs ("यो fputs को लागि परीक्षण गर्दैछ...\n ", fp); fclose (fp); }

    जब माथिको कोड कम्पाइल गरी कार्यान्वयन गरिन्छ, यसले / tmp डाइरेक्टरीमा test.txt नयाँ फाइल सिर्जना गर्दछ। र दुई फरक प्रकार्यहरू प्रयोग गरेर दुई लाइनहरूमा लेख्छ। अब यो फाइल पढौं।

    फाइल पढ्नुहोस्

    फाइलबाट एकल क्यारेक्टर पढ्नको लागि निम्न सरल प्रकार्य हो:

    int fgetc (फाइल * fp);

    fgetc () प्रकार्यले इनपुट फाइलबाट एउटा क्यारेक्टर पढ्छ जसमा fp पोइन्ट हुन्छ। रिटर्न मान पढ्ने क्यारेक्टर र EOF हो भने त्रुटि हुन्छ। निम्न प्रकार्यले तपाईंलाई स्ट्रिमबाट स्ट्रिङ पढ्न अनुमति दिन्छ:

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

    प्रकार्य fgets () ले fp द्वारा निर्देशित इनपुट स्ट्रिमबाट n-1 वर्णहरू पढ्छ। यसले पढ्ने स्ट्रिङलाई बफर बफमा प्रतिलिपि गर्छ र स्ट्रिङ समाप्त गर्नको लागि अन्त्यमा शून्य क्यारेक्टर थप्छ।

    यदि यो प्रकार्यले टुटेको लाइन क्यारेक्टर '\ n' वा अन्तिम क्यारेक्टर पढ्नु अघि फाइलको अन्त्यको EOF लाई भेट्छ भने, त्यसपछि मात्र पढ्ने क्यारेक्टरहरूमा फर्किन्छ, लाइन ब्रेकहरू सहित। तपाईँले फाइलबाट स्ट्रिङ पढ्नको लागि int fscanf (FILE * fp, const char * ढाँचा,...) प्रकार्य पनि प्रयोग गर्न सक्नुहुन्छ, तर पहिलो स्पेस र लाइन ब्रेकको सामना गर्दा यसले पढ्न रोक्छ।

    जीवित उदाहरण

    #समावेश गर्नुहोस् int मुख्य () { फाइल * fp = NULL ; चार बफ [२५५]; 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() को विधिले यो मात्र पढ्छ। किनभने यसले पछाडि स्पेसको सामना गर्छ। दोस्रो, लाइनको अन्त्य सम्म बाँकी भाग पढ्न functon 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 number_of_elements , FILE *a_file );

    दुबै प्रकार्यहरू भण्डारण ब्लकहरूको लागि पढ्न र लेख्न सकिन्छ - सामान्यतया arrays वा संरचनाहरू।

    C फाइल पढ्ने र लेख्ने बारे माथि HDV Phoelectron Technology Ltd., एक सफ्टवेयर प्राविधिक अपरेशनसँग सम्बन्धित छ। र नेटवर्क सम्बन्धित उपकरणहरूको लागि कम्पनी (जस्तै: एसीONU/ संचारONU/ बौद्धिकONU/ फाइबरONU, आदि) ले एक शक्तिशाली सफ्टवेयर टोली सँगै ल्याएको छ, प्रत्येक ग्राहकको लागि आवश्यक पर्ने विशेष मागहरू अनुकूलित गर्नुहोस्, हाम्रा उत्पादनहरूलाई थप बुद्धिमान र उन्नत बनाउनुहोस्।



    web聊天