MCAWALA

C Programming Tutorial

C Programming में File Handling – आसान हिंदी में पूरी जानकारी

File Handling का मतलब है कंप्यूटर फाइलों (जैसे टेक्स्ट फाइल, बाइनरी फाइल) को पढ़ना, लिखना और मैनेज करना। C भाषा में यह बहुत जरूरी टॉपिक है क्योंकि हम डाटा को स्थायी रूप से सेव करने के लिए फाइलों का उपयोग करते हैं।

File Handling क्यों जरूरी है?

अगर हम प्रोग्राम में डाटा सिर्फ मेमोरी (RAM) में रखें, तो प्रोग्राम बंद होते ही डाटा खो जाएगा। फाइलों में डाटा सेव करने से हमारा डाटा कंप्यूटर में सुरक्षित रहता है और बाद में उपयोग किया जा सकता है।

C में File Handling के मुख्य Concepts

  • FILE Pointer: C में फाइल हैंडल करने के लिए FILE नाम का डाटा टाइप होता है, जो फाइल के मेमोरी लोकेशन को पॉइंट करता है।
  • File Open करना: फाइल खोलने के लिए fopen() फंक्शन इस्तेमाल होता है।
  • File Close करना: फाइल का उपयोग खत्म करने के बाद उसे बंद करने के लिए fclose() का उपयोग होता है।
  • File Read और Write करना: फाइल से पढ़ने के लिए fgetc(), fgets(), fread() आदि और लिखने के लिए fputc(), fputs(), fwrite() आदि फंक्शन होते हैं।

File Open Modes (फ़ाइल खोलने के तरीके)

Mode Description
"r" Read – फाइल पढ़ने के लिए खोलना
"w" Write – नई फाइल बनाने या ओवरराइट करने के लिए
"a" Append – फाइल के अंत में डाटा जोड़ने के लिए
"r+" Read और Write दोनों के लिए
"w+" Read और Write (नई फाइल बनाए या ओवरराइट करे)
"a+" Read और Append के लिए

Example 1: फाइल खोलना और लिखना

#include <stdio.h>

int main() {
    FILE *fp;
    fp = fopen("example.txt", "w");  // "w" mode में फाइल खोलो (लिखने के लिए)

    if (fp == NULL) {
        printf("File नहीं खुल सकी।\n");
        return 1;
    }

    fprintf(fp, "यह पहली लाइन है।\n");
    fprintf(fp, "यह दूसरी लाइन है।\n");

    fclose(fp);
    printf("डाटा फाइल में सफलतापूर्वक लिखा गया।\n");
    return 0;
}

Explanation: यह प्रोग्राम example.txt नाम की फाइल बनाता है और उसमें दो लाइनें लिखता है। अगर फाइल नहीं खुलती, तो error मैसेज दिखाता है।

Example 2: फाइल पढ़ना (Text File Reading)

#include <stdio.h>

int main() {
    FILE *fp;
    char ch;

    fp = fopen("example.txt", "r");  // "r" mode में फाइल खोलो (पढ़ने के लिए)

    if (fp == NULL) {
        printf("File नहीं खुल सकी।\n");
        return 1;
    }

    printf("File की सामग्री:\n");

    while ((ch = fgetc(fp)) != EOF) {
        printf("%c", ch);
    }

    fclose(fp);
    return 0;
}

Explanation: यह प्रोग्राम example.txt फाइल से एक-एक कर character पढ़ता है और स्क्रीन पर दिखाता है जब तक फाइल खत्म न हो जाए।

Example 3: फाइल में लाइन पढ़ना (fgets का उपयोग)

#include <stdio.h>

int main() {
    FILE *fp;
    char line[100];

    fp = fopen("example.txt", "r");

    if (fp == NULL) {
        printf("File नहीं खुल सकी।\n");
        return 1;
    }

    printf("File की लाइनें:\n");

    while (fgets(line, sizeof(line), fp)) {
        printf("%s", line);
    }

    fclose(fp);
    return 0;
}

Explanation: यह प्रोग्राम फाइल से लाइन दर लाइन पढ़ता है और हर लाइन को प्रिंट करता है।

Example 4: फाइल में डाटा जोड़ना (Append Mode)

#include <stdio.h>

int main() {
    FILE *fp;
    fp = fopen("example.txt", "a");  // "a" mode में फाइल खोलो (append के लिए)

    if (fp == NULL) {
        printf("File नहीं खुल सकी।\n");
        return 1;
    }

    fprintf(fp, "यह एक नई लाइन है जो फाइल में जोड़ी गई है।\n");

    fclose(fp);
    printf("डाटा सफलतापूर्वक जोड़ा गया।\n");
    return 0;
}

Explanation: यह प्रोग्राम फाइल में नए डाटा को उसके अंत में जोड़ता है, मौजूदा डाटा को मिटाए बिना।

Binary File Handling (बाइनरी फाइल हैंडलिंग)

Binary फाइलों में हम raw data लिखते और पढ़ते हैं, जैसे images, videos या अन्य non-text data।

Example: बाइनरी फाइल में लिखना और पढ़ना

#include <stdio.h>

int main() {
    FILE *fp;
    int numbers[5] = {10, 20, 30, 40, 50};

    // बाइनरी फाइल में लिखना
    fp = fopen("data.bin", "wb");
    if (fp == NULL) {
        printf("File नहीं खुल सकी।\n");
        return 1;
    }
    fwrite(numbers, sizeof(int), 5, fp);
    fclose(fp);

    // बाइनरी फाइल से पढ़ना
    int read_numbers[5];
    fp = fopen("data.bin", "rb");
    if (fp == NULL) {
        printf("File नहीं खुल सकी।\n");
        return 1;
    }
    fread(read_numbers, sizeof(int), 5, fp);
    fclose(fp);

    printf("फाइल से पढ़े गए नंबर:\n");
    for(int i=0; i<5; i++) {
        printf("%d ", read_numbers[i]);
    }
    return 0;
}

Explanation: यह प्रोग्राम एक integer array को binary फाइल में लिखता है और फिर उसे पढ़कर स्क्रीन पर प्रिंट करता है।

फाइल हैंडलिंग करते वक्त सावधानियां

  • हमेशा फाइल खोलने के बाद NULL चेक करें ताकि पता चले कि फाइल सही से खुली है या नहीं।
  • फाइल का उपयोग खत्म होने के बाद fclose() करना जरूरी है।
  • Append mode का सही उपयोग करें ताकि डाटा overwrite न हो।
  • Binary फाइल में पढ़ने और लिखने के लिए fread() और fwrite() का सही तरीके से उपयोग करें।
  • File paths और permissions का ध्यान रखें।

निष्कर्ष

C में File Handling programming के लिए बहुत जरूरी टॉपिक है। इससे हम डाटा को स्थायी रूप से सेव, पढ़ और संशोधित कर सकते हैं। इसका सही उपयोग कर आप कई real-world applications जैसे टेक्स्ट एडिटर, गेम, और डेटा बेस बना सकते हैं।