मैंने "The C Programming Language" (के & आर) पढ़ना शुरू कर दिया है और मुझे getchar()
फ़ंक्शन के बारे में संदेह है।'getchar() `उपयोगकर्ता इनपुट कहां स्टोर करता है?
उदाहरण के लिए इस कोड:
#include <stdio.h>
main()
{
int c;
c = getchar();
putchar(c);
printf("\n");
}
टाइप toomanychars
+ CTRL + डी (EOF) प्रिंट सिर्फ t
। मुझे लगता है कि इसकी उम्मीद है क्योंकि यह पहला चरित्र पेश किया गया है।
लेकिन तब कोड के इस अन्य टुकड़ा:
#include <stdio.h>
main()
{
int c;
while((c = getchar()) != EOF)
putchar(c);
}
टाइप toomanychars
+ CTRL + डी (EOF) toomanychars
प्रिंट करता है।
मेरा सवाल यह है कि, ऐसा क्यों होता है यदि मेरे पास केवल एक चर चर हो? शेष वर्ण संग्रहित कहां हैं?
संपादित करें:
जवाब के लिए हर किसी के लिए धन्यवाद, मैं अब ... केवल एक ही पकड़ इसे पाने के लिए शुरू:
पहला कार्यक्रम बाहर निकलता है जब दिया CTRL + डी जबकि दूसरा पूरा स्ट्रिंग प्रिंट करता है और फिर अधिक उपयोगकर्ता इनपुट की प्रतीक्षा करता है। यह एक और स्ट्रिंग के लिए क्यों इंतजार करता है और पहले की तरह बाहर नहीं निकलता है?
आपका दूसरा दृष्टिकोण सिर्फ EOF जब तक लूप। CTRL + D (विशिष्ट यूनिक्स सिस्टम पर) EOF में परिणाम नहीं होगा जब तक कि आप अपनी खुद की एक लाइन पर यह मारा। Ctrl + डी के बाद आप एक चरित्र लिखा है EOF – nos