मेरा कोड यहां है। मैं इसे टर्मिनल के साथ उबंटू में चलाता हूं। जब मैं टाइप करता हूं (एक Ctrlडी) टर्मिनल में, प्रोग्राम बंद नहीं हुआ लेकिन मेरे इनपुट के लिए प्रतीक्षा करना जारी रखा।ctrl-d ने थोड़ी देर नहीं रुकी (getchar()! = EOF) लूप
Ctrlयूनिक्स में डी बराबर EOF के लिए नहीं है?
धन्यवाद।
#include<stdio.h>
main() {
int d;
while(d=getchar()!=EOF) {
printf("\"getchar()!=EOF\" result is %d\n", d);
printf("EOF:%d\n", EOF);
}
printf("\"getchar()!=EOF\" result is %d\n", d);
}
यह रिकर्सन नहीं है। जब तक आप इनपुट ईओएल नहीं करते हैं तो यह केवल एक अनंत लूप है। रिकर्सन = फ़ंक्शन स्वयं को सीधे या कुछ अन्य मध्यवर्ती चरणों के बाद कॉल कर रहा है। –
संकलित कि जीसीसी के साथ, '^ डी' मारने से मेरे लिए लूप बंद कर दिया गया। –
@ जोनलिन बस इनपुट^डी। यह मेरे लिए भी काम करता है। हालांकि, जब इनपुट (ए^डी) होता है; लूप बंद नहीं होता था। – Sam