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

C भाषा में feof() फंक्शन की व्याख्या


feof() फंक्शन क्या है?

feof() C की फाइल हैंडलिंग लाइब्रेरी (stdio.h) का एक फंक्शन है जो फाइल के अंत (End of File - EOF) का पता लगाने के लिए उपयोग किया जाता है।

सिंटैक्स

int feof(FILE *stream);
  • यदि फाइल पॉइंटर अंत पर पहुँच गया है → शून्येतर (non-zero) लौटाता है।
  • अन्यथा → 0 लौटाता है।

सामान्य उपयोग पैटर्न

FILE *fp = fopen("data.txt", "r");
if (fp == NULL) {
    printf("फाइल खोलने में त्रुटि\n");
    return 1;
}

int num;
while (1) {
    num = getw(fp);  // या fscanf, fgetc आदि
    if (feof(fp)) {
        printf("फाइल का अंत पहुँच गया।\n");
        break;
    }
    printf("%d ", num);
}
fclose(fp);

पूर्ण उदाहरण प्रोग्राम

#include <stdio.h>

int main() {
    FILE *fp;
    int i, n;
    
    // 1. फाइल बनाएं और डेटा लिखें
    fp = fopen("number.txt", "w");
    if (fp == NULL) return 1;
    
    for (i = 0; i <= 100; i += 10)
        putw(i, fp);  // 0, 10, 20... 100 लिखें
    fclose(fp);
    
    // 2. फाइल पढ़ें और feof() से अंत जांचें
    fp = fopen("number.txt", "r");
    if (fp == NULL) return 1;
    
    printf("फाइल सामग्री:\n");
    for (i = 0; i <= 100; i++) {
        n = getw(fp);
        if (feof(fp)) {
            printf("\nफाइल का अंत पहुँच गया।\n");
            break;
        }
        printf("%d\t", n);
    }
    fclose(fp);
    return 0;
}

आउटपुट

फाइल सामग्री:
0	10	20	30	40	50	60	70	80	90	100
फाइल का अंत पहुँच गया।

महत्वपूर्ण सावधानियां

⚠ feof() का सही उपयोग

गलत तरीका:

while (!feof(fp)) {  // समस्या: feof() पढ़ने के *बाद* सेट होता है
    fscanf(fp, "%d", &x);
    printf("%d ", x);  // अंतिम मान दो बार प्रिंट हो सकता है
}

सही तरीका:

while (fscanf(fp, "%d", &x) == 1) {  // पढ़ने की सफलता जांचें
    printf("%d ", x);
}
// लूप अपने आप तब रुकता है जब पढ़ने में विफलता होती है (EOF या त्रुटि)

सारांश

  • feof() केवल पढ़ने के प्रयास के बाद EOF स्थिति बताता है।
  • लूप की शर्त में सीधे feof() न जांचें; पढ़ने वाले फंक्शन के रिटर्न मान को जांचें।
  • बाइनरी फाइल्स के लिए fread() के रिटर्न मान की जांच बेहतर है।
  1. C भाषा में putw() और getw() फंक्शन्स C भाषा में putw() और getw() फंक्शन्स

    फाइल रिकॉर्ड्स का संग्रह है या हार्ड डिस्क पर एक स्थान है जहां डेटा स्थायी रूप से संग्रहीत होता है। फाइलों पर ऑपरेशन्स C प्रोग्रामिंग भाषा में फाइलों पर ऑपरेशन्स निम्नलिखित हैं: फाइल का नामकरण फाइल खोलना फाइल से पढ़ना फाइल में लिखना फाइल बंद करना सिंटैक्स फाइल खोलने का सिंटैक्स निम्नलिखित है: F

  1. C भाषा में फाइलों के putc() और getc() फंक्शन्स C भाषा में फाइलों के putc() और getc() फंक्शन्स

    फाइल रिकॉर्ड्स का संग्रह है या हार्ड डिस्क पर एक स्थान है जहां डेटा स्थायी रूप से संग्रहीत होता है। फाइलों पर ऑपरेशन्स C प्रोग्रामिंग भाषा में फाइलों पर ऑपरेशन्स निम्नलिखित हैं: फाइल का नामकरण फाइल खोलना फाइल से पढ़ना फाइल में लिखना फाइल बंद करना सिंटैक्स फाइल खोलने का सिंटैक्स निम्नलिखित है: F

  1. C भाषा में लूप कंट्रोल स्टेटमेंट्स क्या हैं? फ्लो चार्ट और प्रोग्राम के साथ समझाएं C भाषा में लूप कंट्रोल स्टेटमेंट्स क्या हैं? फ्लो चार्ट और प्रोग्राम के साथ समझाएं

    लूप कंट्रोल स्टेटमेंट्स स्टेटमेंट्स के सेट को दोहराने के लिए उपयोग किए जाते हैं। वे हैं: for लूप while लूप do-while लूप for लूप सिंटैक्स for(initialization; condition; increment/decrement) { // लूप बॉडी } फ्लो चार्ट (Condition पर वापस) आरंभीकरण - आमतौर पर एक असाइनमेंट स्टेटमेंट जो लूप क