C भाषा मा EOF को पूर्ण गाइड | प्रयोग, ध्यान दिनुपर्ने बुँदा, व्यावहारिक उदाहरण

1. परिचय

C भाषा प्रयोग गरेर प्रोग्रामिङ गर्दा, फाइल प्रक्रिया र मानक इनपुटलाई ह्यान्डल गर्नु अत्यन्त महत्वपूर्ण छ। त्यसमा, EOF (End of File) फाइल वा इनपुटको अन्त्यलाई संकेत गर्ने विशेष मानको रूपमा प्रस्तुत हुन्छ। यदि EOF लाई सही रूपमा बुझ्नुभएन भने, फाइलको अन्त्यलाई उचित रूपमा प्रक्रिया गर्न नसक्ने र अनपेक्षित व्यवहार उत्पन्न हुने सम्भावना हुन्छ। यस लेखमा, EOF को परिभाषा, प्रयोग, र त्यसको प्रक्रियासँग सम्बन्धित ध्यान दिनुपर्ने बुँदाहरूलाई विस्तृत रूपमा व्याख्या गर्नेछौं।

2. EOFको परिभाषा र भूमिका

EOF (End of File) C भाषामा फाइलको अन्त्य वा त्रुटि देखाउन प्रयोग हुने विशेष मान हो, र मानक पुस्तकालयको stdio.h मा परिभाषित गरिएको छ। विशेष गरी, EOF ले -1 मान राख्छ। फाइल वा इनपुट प्रक्रिया गर्दा, यो EOF प्रयोग गरेर, डेटा सबै पढिएको छ कि छैन जाँच गर्न सकिन्छ।

उदाहरणका लागि getchar() फलन वा fgetc() फलनले फाइलको अन्त्यमा पुग्दा EOF फिर्ता गर्छ। यसरी, प्रोग्रामले डेटाको अन्त्यलाई पहिचान गरी, उपयुक्त प्रक्रिया गर्न सक्छ।

#include <stdio.h>

int main() {
    FILE *file = fopen("sample.txt", "r");
    int c;

    while ((c = fgetc(file)) != EOF) {
        putchar(c);
    }

    fclose(file);
    return 0;
}

यो कोडले फाइलको सामग्रीलाई एक अक्षर씩 पढ्दै, EOF सम्म पुग्ने सम्म प्रदर्शन गर्छ।

3. EOF को प्रयोग उदाहरण: getchar() र feof()

EOF विशेष गरी getchar()fgetc() जस्ता इनपुट फङ्क्शनहरूसँग संयोजनमा प्रयोग गरिन्छ। तल, getchar() प्रयोग गरेर EOF को सामान्य प्रयोग उदाहरण देखाइन्छ।

#include <stdio.h>

int main() {
    int c;

    // मानक इनपुटबाट क्यारेक्टरहरू प्राप्त गरेर EOF फर्कनेसम्म प्रक्रिया गर्नुहोस्
    while ((c = getchar()) != EOF) {
        putchar(c);
    }

    return 0;
}

यो प्रोग्रामले मानक इनपुटबाट अक्षरलाई एक-एक गरी पढ्छ, र EOF इनपुट नहुनु सम्म ती अक्षरहरूलाई निरन्तर आउटपुट गर्छ। किबोर्डबाट EOF इनपुट गर्न, सामान्यतया Ctrl + D (Linux वा macOS) वा Ctrl + Z (Windows) प्रयोग गरिन्छ।

अर्कोतर्फ, फाइलको अन्त्यमा पुगेको छ कि छैन जाँच्नको लागि फङ्क्शन feof() पनि उपयोगी छ। यो फङ्क्शनले फाइलको अन्त्यमा पुगेको छ कि छैन जाँच्छ, र सत्य (1) वा असत्य (0) फिर्ता गर्छ।

#include <stdio.h>

int main() {
    FILE *file = fopen("sample.txt", "r");

    if (file == NULL) {
        perror("फाइल खोल्न सकिएन");
        return 1;
    }

    int c;
    while ((c = fgetc(file)) != EOF) {
        putchar(c);
    }

    if (feof(file)) {
        printf("nफाइलको अन्त्यमा पुगियो।n");
    }

    fclose(file);
    return 0;
}

यो कोडमा, EOF मा पुगेपछि feof() प्रयोग गरेर, फाइल पूर्ण रूपमा पढिएको छ कि छैन जाँचिन्छ।

4. EOF सम्बन्धी ध्यान दिनुपर्ने बुँदाहरू

EOF लाई ह्यान्डल गर्दा ध्यान दिनुपर्ने बुँदा भनेको、char प्रकार रint प्रकारको भिन्नता हो।getchar()fgetc() ले, EOF-1 द्वारा प्रतिनिधित्व गरिन्छ, त्यसैले तिनीहरूको रिटर्न मानint प्रकारको हुन्छ। यदि रिटर्न मानलाईchar प्रकारको भेरिएबलमा असाइन गरेमा, साइन त्रुटि उत्पन्न हुन सक्छ, र EOF लाई सही रूपमा प्रोसेस गर्न नसक्ने स्थिति हुन सक्छ।

उदाहरणको रूपमा、char प्रकारमा EOF असाइन गर्दा、EOF0xFF मानमा रूपान्तरण हुन सक्छ। यसले फाइलको अन्त्यलाई सही रूपमा पहिचान नहुन सक्छ, र अनपेक्षित व्यवहार उत्पन्न हुन सक्छ।

त्यसैले、EOF लाई ह्यान्डल गर्दा、int प्रकार प्रयोग गर्न सिफारिस गरिन्छ। तलint प्रकार प्रयोग गरेर EOF लाई सही रूपमा जाँच्ने उदाहरण छ।

#include <stdio.h>

int main() {
    int c;

    while ((c = getchar()) != EOF) {
        putchar(c);
    }

    return 0;
}

यस कोडमा、रिटर्न मानलाईint प्रकारमा प्राप्त गरेरEOF लाई सही रूपमा जाँच गरिएको छ।

5. EOF प्रयोगको अनुप्रयोग उदाहरण

EOF प्रयोगको अनुप्रयोगको रूपमा, फाइलको पङ्क्ति सङ्ख्या गणना गर्ने कार्यक्रमलाई विचार गरौं। यस कार्यक्रमले, EOF सम्म पुग्ने सम्म फाइललाई एक अक्षर씩 पढ्छ, र नयाँ लाइन देखा परेमा गणना बढाउँछ।

#include <stdio.h>

int main() {
    FILE *file = fopen("sample.txt", "r");
    int c;
    int line_count = 0;

    if (file == NULL) {
        perror("फाइल खोल्न सकिएन");
        return 1;
    }

    while ((c = fgetc(file)) != EOF) {
        if (c == 'n') {
            line_count++;
        }
    }

    printf("पङ्क्ति सङ्ख्या: %dn", line_count);
    fclose(file);

    return 0;
}

यो कार्यक्रमले फाइलभित्रका नयाँ लाइनहरू गन्ती गर्छ, र अन्तमा पङ्क्ति सङ्ख्या निकाल्दछ। EOF प्रयोग गरेर फाइलको अन्त्य पत्ता लगाइ, प्रक्रिया समाप्त गर्ने एक सामान्य अनुप्रयोग उदाहरण हो।

6. सारांश

EOF ले C भाषा मा फाइल वा मानक इनपुटको अन्त्य पत्ता लगाउन महत्त्वपूर्ण भूमिका खेल्छ। यसको सही प्रयोग बुझेर, फाइल प्रोसेसिङ वा इनपुट प्रोसेसिङ कार्यक्रमलाई स्थिर रूपमा चलाउन सकिन्छ। साथै, EOF लाई ह्यान्डल गर्दा ध्यान दिनुपर्ने कुरा भनेको, char प्रकारको सट्टा int प्रकार प्रयोग गरेर, EOF लाई सही रूपमा पहिचान गर्न सकिन्छ भन्ने कुरा याद राख्नु राम्रो हुन्छ।

यस लेखमा, EOF को आधारभूतदेखि विशिष्ट प्रयोग उदाहरणहरू, र अनुप्रयोगसम्मलाई समग्र रूपमा व्याख्या गरिएको छ। C भाषा मा फाइल अपरेसन गर्दा, कृपया यसलाई सन्दर्भको रूपमा प्रयोग गर्नुहोस्।