Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में फाइल में सामग्री लिखना और पलटना


फाइल में लिखना और पढ़ना

C में फाइल ऑपरेशन्स के लिए stdio.h लाइब्रेरी के फंक्शन्स उपयोग होते हैं। यहाँ हम फाइल में टेक्स्ट लिखने, वर्ण गिनने और सामग्री को उल्टा (reverse) करके प्रिंट करने का उदाहरण देखेंगे।

मुख्य फंक्शन्स

फंक्शनउद्देश्य
fopen()फाइल खोलना (मोड: "r", "w", "a" आदि)
fputc()एक वर्ण फाइल में लिखना
fgetc()एक वर्ण फाइल से पढ़ना
ftell()फाइल पॉइंटर की वर्तमान स्थिति (बाइट्स में) लौटाना
rewind()फाइल पॉइंटर को शुरुआत पर ले जाना
fseek()फाइल पॉइंटर को विशिष्ट स्थान पर ले जाना
fclose()फाइल बंद करना

लॉजिक: फाइल सामग्री को उल्टा प्रिंट करना

  1. फाइल को "w" मोड में खोलें और उपयोगकर्ता इनपुट लिखें (EOF/Ctrl+Z तक)।
  2. ftell() से लिखे गए वर्णों की संख्या जानें।
  3. rewind() से पॉइंटर शुरुआत पर लाएं।
  4. फाइल को "r" मोड में फिर खोलें।
  5. fseek(fp, 0, SEEK_END) से अंत पर जाएं, ftell() से कुल आकार लें।
  6. लूप में fseek(fp, -i, SEEK_END) से पीछे जाएं और fgetc() से पढ़ें।

पूर्ण C प्रोग्राम

#include <stdio.h>

int main() {
    FILE *fp;
    char ch;
    int n, i = 0;
    
    // 1. लिखने के लिए खोलें
    fp = fopen("reverse.txt", "w");
    if (fp == NULL) {
        printf("फाइल नहीं बन सकी।\n");
        return 1;
    }
    
    printf("टेक्स्ट दर्ज करें (अंत में Ctrl+Z / Ctrl+D दबाएं):\n");
    while ((ch = getchar()) != EOF) {
        fputc(ch, fp);
    }
    
    // 2. वर्ण गिनें
    n = ftell(fp);
    printf("\nदर्ज वर्णों की संख्या = %d\n", n);
    
    // 3. पॉइंटर रिवाइंड करें
    rewind(fp);
    printf("rewind के बाद ftell = %d\n", ftell(fp));
    fclose(fp);
    
    // 4. पढ़ने के लिए फिर खोलें और उल्टा प्रिंट करें
    fp = fopen("reverse.txt", "r");
    if (fp == NULL) return 1;
    
    fseek(fp, 0, SEEK_END);  // अंत पर जाएं
    n = ftell(fp);           // कुल आकार
    
    printf("उल्टी सामग्री:\n");
    while (i < n) {
        i++;
        fseek(fp, -i, SEEK_END);  // अंत से i बाइट पीछे
        printf("%c", fgetc(fp));
    }
    printf("\n");
    
    fclose(fp);
    return 0;
}

आउटपुट उदाहरण

टेक्स्ट दर्ज करें (अंत में Ctrl+Z / Ctrl+D दबाएं):
TutorialsPoint
^Z

दर्ज वर्णों की संख्या = 14
rewind के बाद ftell = 0
उल्टी सामग्री:
tniopslairotuT

महत्वपूर्ण नोट्स

  • getchar() से इनपुट लेते समय Windows में Ctrl+Z, Linux/Mac में Ctrl+D EOF के लिए उपयोग करें।
  • ftell() बाइनरी मोड में अधिक विश्वसनीय होता है; टेक्स्ट मोड में नई लाइन परिवर्तन के कारण मान भिन्न हो सकते हैं।
  • बड़ी फाइलों के लिए पूरी सामग्री मेमोरी में पढ़कर उल्टा करना अधिक कुशल होता है।
  1. - पायथन का उपयोग करके सभी खुली फ़ाइलों को कैसे बंद करें?

    पायथन में नेटिव रूप से सभी खुली फ़ाइलों को ट्रैक करने का कोई तरीका नहीं है। ऐसा करने के लिए आपको या तो सभी फ़ाइलों को स्वयं ट्रैक करना चाहिए या हमेशा फ़ाइलें खोलने के लिए with स्टेटमेंट का उपयोग करना चाहिए जो फ़ाइल को ऑटोमेटिकली बंद कर देता है जब यह स्कोप से बाहर जाती है या एरर का सामना करती है। उद

  1. - पायथन का उपयोग करके स्क्रीन पर कैसे प्रिंट करें?

    स्क्रीन पर आउटपुट करने का बुनियादी तरीका print स्टेटमेंट का उपयोग करना है। >>> print Hello, world Hello, world एक ही लाइन पर स्पेस से अलग कई चीजें प्रिंट करने के लिए, उनके बीच कॉमा का उपयोग करें। उदाहरण के लिए: >>> print Hello,, World Hello, World जबकि किसी भी स्ट्रिंग में स्पेस न

  1. Linux में Find कमांड का उपयोग करके फ़ाइल ढूंढें Linux में Find कमांड का उपयोग करके फ़ाइल ढूंढें

    Linux find कमांड Linux सिस्टम में सबसे महत्वपूर्ण और आसान कमांड में से एक है। यह, जैसा कि नाम से पता चलता है, आपके द्वारा सेट की गई बहुत अधिक शर्तों और चरों के आधार पर आपके Linux PC पर फ़ाइलें ढूंढ सकता है। आप find कमांड का उपयोग करके अनुमतियों, उपयोगकर्ताओं, समूहों, फ़ाइल प्रकार, तिथि, आकार और अन्य