मैं डेनिस रिची की द सी प्रोग्रामिंग लैंग्वेज किताब में पढ़ता हूं int
जिसका उपयोग ईओएफ को रखने के लिए एक चर के लिए किया जाना चाहिए - इसे पर्याप्त रूप से बड़ा बनाने के लिए ताकि यह ईओएफ मूल्य को पकड़ सके - नहीं char
। लेकिन निम्नलिखित कोड ठीक काम करता है:
#include<stdio.h>
main() {
char c;
c=getchar();
while(c!=EOF) {
putchar(c);
c=getchar();
}
}
जब अधिक इनपुट नहीं होता है, तो getchar
EOF लौटाता है। और उपरोक्त कार्यक्रम में, चर c
, चर प्रकार के साथ, इसे सफलतापूर्वक आयोजित करने में सक्षम है।
यह काम क्यों करता है? उपर्युक्त पुस्तक में दिए गए स्पष्टीकरण के अनुसार, कोड को काम नहीं करना चाहिए।
0xff
। उस समस्या का हल getchar()
एक परिणाम के रूप में संग्रहीत करना int
। आपका प्रश्न अनिवार्य रूप से comp.lang.c FAQ में प्रश्न 12.1 जैसा ही है , जो एक उत्कृष्ट संसाधन है। (इसके अलावा, main()
होना चाहिए int main(void)
, और इसे return 0;
बंद करने से पहले जोड़ने के लिए चोट नहीं पहुंचेगी }
।)