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

    सी, दस्तऐवज वाचन आणि लेखन

    पोस्ट वेळ: ऑगस्ट-11-2023

    सी प्रोग्रामर मजकूर फाइल किंवा बायनरी फाइल कशी तयार करतो, उघडतो आणि बंद करतो याचे वर्णन करतो.

    फाइल, म्हणजे बाइट्सची मालिका, मग ती मजकूर फाइल असो किंवा बायनरी फाइल, सी लँग्वेज, केवळ उच्च स्तरीय फंक्शन्समध्ये प्रवेश प्रदान करत नाही तर स्टोरेज डिव्हाइसवर फाइल्सवर प्रक्रिया करण्यासाठी अंतर्निहित (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 ( 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 * format,...) फाइलवर स्ट्रिंग लिहिते. खालील उदाहरण वापरून पहा:

    टीप: तुमच्याकडे उपलब्ध tmp निर्देशिका असल्याची खात्री करा आणि ती अस्तित्वात नसल्यास, तुम्हाला ती तुमच्या संगणकावर प्रथम तयार करावी लागेल.

    / tmp ही सहसा लिनक्स प्रणालीवरील तात्पुरती निर्देशिका असते. जर तुम्ही 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); }

    जेव्हा वरील कोड संकलित केला जातो आणि कार्यान्वित केला जातो तेव्हा ते / tmp डिरेक्टरीमध्ये test.txt एक नवीन फाइल तयार करते. आणि दोन भिन्न फंक्शन्स वापरून दोन ओळींवर लिहितो. ही फाईल पुढे वाचू.

    फाईल वाचा

    फाईलमधील एकल अक्षर वाचण्यासाठी खालील सर्वात सोपा कार्य आहे:

    int fgetc ( FILE * fp );

    fgetc() फंक्शन इनपुट फाइलमधील एक अक्षर वाचते ज्याकडे fp पॉइंट करते. रिटर्न व्हॅल्यू हे रीड कॅरेक्टर आणि एरर आल्यास EOF असते. खालील फंक्शन तुम्हाला प्रवाहातील स्ट्रिंग वाचण्याची परवानगी देते:

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

    fgets () फंक्शन fp ने निर्देशित केलेल्या इनपुट प्रवाहातील n-1 वर्ण वाचते. ते वाचलेल्या स्ट्रिंगला बफर बफमध्ये कॉपी करते आणि स्ट्रिंग संपुष्टात आणण्यासाठी शेवटी एक शून्य वर्ण जोडते.

    या फंक्शनला शेवटचे अक्षर वाचण्यापूर्वी '\n' किंवा फाईलच्या शेवटीचे EOF तुटलेले ओळ वर्ण आढळल्यास, नंतर केवळ वाचलेल्या वर्णांवर परत येईल, ज्यामध्ये ओळ ब्रेक्सचा समावेश आहे. फाइलमधील स्ट्रिंग वाचण्यासाठी तुम्ही int fscanf (FILE * fp, const char * format,...) फंक्शन देखील वापरू शकता, परंतु प्रथम स्पेस आणि लाइन ब्रेकचा सामना करताना ते वाचणे थांबवते.

    जिवंत उदाहरण

    #समाविष्ट करा int main () { FILE *fp = NULL ; चार बफ [२५५]; fp = fopen ("/tmp/test.txt", "r"); fscanf (fp , "%s ", buff); printf ("1: %s \n ", बफ); fgets (बफ , 255, (फाईल *)fp ); printf ("2: %s \n ", buff); fgets (बफ , 255, (फाईल *)fp ); printf ("3: %s \n ", बफ); 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 );

    स्टोरेज ब्लॉक्ससाठी दोन्ही फंक्शन्स वाचली आणि लिहिली जातात-सामान्यतः ॲरे किंवा स्ट्रक्चर्स.

    वरील सी फाइल वाचन आणि लेखन हे एचडीव्ही फोइलेक्ट्रॉन टेक्नॉलॉजी लिमिटेडचे ​​आहे, हे सॉफ्टवेअर तांत्रिक ऑपरेशन आहे. आणि नेटवर्क संबंधित उपकरणांसाठी कंपनी (जसे की: ACONU/ संवादONU/ हुशारONU/ फायबरONU, इ.) ने एक शक्तिशाली सॉफ्टवेअर टीम एकत्र आणली आहे, प्रत्येक ग्राहकासाठी ज्यांना त्याची आवश्यकता आहे अशा विशेष मागण्या सानुकूलित करा, तसेच आमची उत्पादने अधिक बुद्धिमान आणि प्रगत होऊ द्या.



    वेब聊天