• Giga@hdv-tech.com
  • 24 घंटे ऑनलाइन सेवा:
    • 7189078सी
    • एसएनएस03
    • 6660e33e
    • यूट्यूब 拷贝
    • Instagram

    सी, दस्तावेज़ पढ़ना और लिखना

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

    वर्णन करता है कि C प्रोग्रामर एक टेक्स्ट फ़ाइल या बाइनरी फ़ाइल कैसे बनाता है, खोलता है और बंद करता है।

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

    खुली फाइल

    आमतौर पर एक नई फ़ाइल बनाने या किसी मौजूदा फ़ाइल को खोलने के लिए fopen () फ़ंक्शन का उपयोग करते हुए, यह कॉल FILE प्रकार के एक ऑब्जेक्ट को प्रारंभ करता है जिसमें प्रवाह को नियंत्रित करने के लिए सभी आवश्यक जानकारी होती है। इस फ़ंक्शन कॉल का प्रोटोटाइप यहां दिया गया है:

    फ़ाइल *fopen (const char * फ़ाइल नाम, const char * mode);

    यहां फ़ाइल नाम एक फ़ाइल को नाम देने के लिए एक स्ट्रिंग है, एक्सेस मोड का मान निम्न मानों में से एक हो सकता है:

    नमूना

    विवरण

    r

    एक मौजूदा टेक्स्ट फ़ाइल खोलें जो इसे पढ़ने की अनुमति देती है।

    w

    एक टेक्स्ट फ़ाइल खोलें जो फ़ाइल पर लिखने की अनुमति देती है। यदि फ़ाइल मौजूद नहीं है, तो एक नई फ़ाइल बनाई जाती है। यहां, आपका प्रोग्राम फ़ाइल की शुरुआत से सामग्री लिखता है। यदि फ़ाइल मौजूद है, तो इसे शून्य लंबाई तक छोटा कर दिया जाएगा और फिर से लिखा जाएगा।

    a

    एक टेक्स्ट फ़ाइल खोलें और फ़ाइल को एपेंड मोड में लिखें। यदि फ़ाइल मौजूद नहीं है, तो एक नई फ़ाइल बनाई जाती है। यहां, आपका प्रोग्राम आपके पास पहले से मौजूद फ़ाइलों में सामग्री जोड़ता है।

    r+

    एक टेक्स्ट फ़ाइल खोलें जो आपको फ़ाइल को पढ़ने और लिखने की अनुमति देती है।

    w+

    एक टेक्स्ट फ़ाइल खोलें जो आपको फ़ाइल को पढ़ने और लिखने की अनुमति देती है। यदि फ़ाइल पहले से मौजूद है, तो फ़ाइल को शून्य लंबाई तक छोटा कर दिया जाता है, और यदि फ़ाइल मौजूद नहीं है, तो एक नई फ़ाइल बनाई जाती है।

    a+

    एक टेक्स्ट फ़ाइल खोलें जो आपको फ़ाइल को पढ़ने और लिखने की अनुमति देती है। यदि फ़ाइल मौजूद नहीं है, तो एक नई फ़ाइल बनाई जाती है। पढ़ना फ़ाइल की शुरुआत में शुरू होता है, और लिखना केवल परिशिष्ट मोड में होता है।

    यदि बाइनरी फ़ाइल संसाधित है, तो उपरोक्त को बदलने के लिए निम्नलिखित एक्सेस मोड का उपयोग करें:

    "आरबी", "डब्ल्यूबी", "एबी", "आरबी+", "आर+बी", "डब्ल्यूबी+", "डब्ल्यू+बी", "एबी+", "ए+बी"

    बंद फ़ाइल

    फ़ाइल को बंद करने के लिए, कृपया fclose() फ़ंक्शन का उपयोग करें। फ़ंक्शन का प्रोटोटाइप इस प्रकार है:

    int fclose (फ़ाइल *fp);

    • यदि फ़ाइल सफलतापूर्वक बंद हो जाती है, तो fclose() फ़ंक्शन शून्य लौटाता है, और यदि त्रुटि होती है, तो EOF लौटाता है। यह फ़ंक्शन, वास्तव में, बफ़र से डेटा हटाता है, फ़ाइल को बंद करता है, और उस फ़ाइल के लिए उपयोग की गई सभी मेमोरी को रिलीज़ करता है। EOF हेडर फ़ाइल stdio.h में परिभाषित एक स्थिरांक है

    सी मानक लाइब्रेरी वर्णों द्वारा या एक निश्चित-लंबाई स्ट्रिंग के रूप में फ़ाइलों को पढ़ने और लिखने के लिए विभिन्न फ़ंक्शन प्रदान करती है।

    फ़ाइल में लिखें

    स्ट्रीम में अक्षर लिखने के सबसे सरल कार्य यहां दिए गए हैं:

    int fputc (int c, फ़ाइल *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, आदि।

    जीवंत उदाहरण

    #शामिल करना पूर्णांक मुख्य () { फ़ाइल *fp = शून्य ; fp = fopen ("/tmp/test.txt", "w+"); fprintf (fp , "यह fprintf...\n के लिए परीक्षण है"); fputs ("यह fputs के लिए परीक्षण है...\n ", fp ); एफक्लोज (एफपी); }

    जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह / tmp निर्देशिका में एक नई फ़ाइल test.txt बनाता है। और दो अलग-अलग फ़ंक्शन का उपयोग करके दो पंक्तियों में लिखता है। आइए इस फ़ाइल को आगे पढ़ें।

    फ़ाइल पढ़ें

    किसी फ़ाइल से एकल वर्ण को पढ़ने का सबसे सरल कार्य निम्नलिखित है:

    int fgetc (फ़ाइल * एफपी);

    Fgetc () फ़ंक्शन इनपुट फ़ाइल से एक वर्ण पढ़ता है जिस पर fp इंगित करता है। यदि कोई त्रुटि होती है तो रिटर्न वैल्यू रीड कैरेक्टर और ईओएफ है। निम्नलिखित फ़ंक्शन आपको स्ट्रीम से एक स्ट्रिंग पढ़ने की अनुमति देता है:

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

    फ़ंक्शन fgets () fp द्वारा निर्देशित इनपुट स्ट्रीम से n-1 वर्ण पढ़ता है। यह पढ़ी गई स्ट्रिंग को बफ़र बफ़ में कॉपी करता है और स्ट्रिंग को समाप्त करने के लिए अंत में एक शून्य वर्ण जोड़ता है।

    यदि यह फ़ंक्शन अंतिम वर्ण को पढ़ने से पहले एक टूटी हुई रेखा वर्ण '\ n' या फ़ाइल के अंत के EOF का सामना करता है, तो केवल पंक्ति विराम सहित, पढ़े गए वर्णों पर वापस लौटाया जाता है। आप फ़ाइल से स्ट्रिंग को पढ़ने के लिए int fscanf (FILE * fp, const char * format,...) फ़ंक्शन का भी उपयोग कर सकते हैं, लेकिन पहली जगह और लाइन ब्रेक का सामना करने पर यह पढ़ना बंद कर देता है।

    जीवंत उदाहरण

    #शामिल करना पूर्णांक मुख्य () { फ़ाइल *fp = शून्य ; चार बफ़ [255]; fp = fopen ("/tmp/test.txt", "r"); fscanf (fp , "%s ", बफ़ ); प्रिंटफ़ ("1: %s \n ", बफ़ ); fgets (बफ़, 255, (फ़ाइल *)fp); प्रिंटफ़ ("2: %s \n ", बफ़ ); fgets (बफ़, 255, (फ़ाइल *)fp); प्रिंटफ़ ("3: %s \n ", बफ़); एफक्लोज (एफपी); }

    जब उपरोक्त कोड संकलित और निष्पादित किया जाता है, तो यह पिछले अनुभाग में बनाई गई फ़ाइलों को पढ़ता है, जिससे निम्नलिखित परिणाम मिलते हैं:

    1: यह 2: fprintf के लिए परीक्षण कर रहा है...

    3: यह एफपुट्स के लिए परीक्षण है...

    सबसे पहले, fscanf() की विधि केवल This को पढ़ती है। क्योंकि यह पीछे की ओर एक स्थान का सामना करती है। दूसरा, पंक्ति के अंत तक शेष भाग को पढ़ने के लिए functon fgets () को कॉल करें। अंत में, दूसरी पंक्ति को पूरी तरह से पढ़ने के लिए fgets() को कॉल करें।

    बाइनरी I/O फ़ंक्शन

    बाइनरी इनपुट और आउटपुट के लिए निम्नलिखित दो फ़ंक्शन का उपयोग किया जाता है:

    आकार_टी फ़्रेड (शून्य *पीटीआर, आकार_टी आकार_ऑफ_तत्व, आकार_टी नंबर_ऑफ_तत्व, फ़ाइल *ए_फ़ाइल); size_t fwrite (const void *ptr , size_t size_of_elements , size_t number_of_elements , FILE *a_file );

    दोनों फ़ंक्शन स्टोरेज ब्लॉक-आमतौर पर सरणियों या संरचनाओं के लिए पढ़े और लिखे जाते हैं।

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



    Web聊天