2010-07-28 12 views
6

मेरे पास सी प्रोग्रामिंग पुस्तक से एक सरल प्रोग्राम है, और इसे दो पूर्णांक के लिए पूछना है और फिर उन्हें एक साथ जोड़ना और योग दिखाना है। मैं दो नंबरों में प्रवेश करने में सक्षम हूं, लेकिन आउटपुट प्रोग्राम के बहुत अंत तक दिखाई नहीं देता है।प्रोग्राम आउट होने तक मेरा आउटपुट क्यों प्रदर्शित नहीं होता है?

#include <stdlib.h> 
#include <stdio.h> 

/* Addition Program*/ 
main() 
{ 
     int integer1, integer2, sum; 
     printf("Enter first integer\n"); 
     scanf("%d", &integer1); 
     printf("Enter second integer\n"); 
     scanf("%d", &integer2); 
     sum = integer1 + integer2; 
     printf("Sum is %d\n", sum); 
     return 0; 
} 

उत्पादन इस तरह दिखता है:

2 
6 
Enter first integer 
Enter second integer 
Sum is 8 

किसी भी मदद की बहुत सराहना की जाएगी, धन्यवाद!

+0

मैंने आपके उदाहरण की प्रतिलिपि बनाई/चिपकाया और यह दिखाया गया कि मैं अपने लिनक्स बॉक्स पर अपेक्षा करता हूं। आप किस प्रणाली पर चल रहे हैं? क्या आप किसी फैंसी रीडायरेक्शन या कुछ भी इस्तेमाल कर रहे हैं? – jdizzle

+1

आप इसे किस मशीन पर चल रहे हैं? मैंने आपके प्रोग्राम की कोशिश की और यह ठीक काम किया (मुझे पूर्णांक दर्ज करने से पहले "पहले पूर्णांक दर्ज करें" दिखा रहा है)। यदि आप scanf से पहले "fflush (stdout)" आज़मा सकते हैं, तो यह काम कर सकता है। (बस एक गंदे चाल - माफ करना)। – Shrey

+0

वीएस -2008 पर काम करता है। – Jacob

उत्तर

8

यह संभव है कि उत्पादन स्वचालित रूप से फ़्लश नहीं किया जा रहा है। आप प्रत्येक printf() के बाद fflush (stdout) जोड़ सकते हैं और देख सकते हैं कि इससे मदद मिलती है या नहीं।

इस कार्यक्रम को बनाने और चलाने के लिए आप किस पर्यावरण का उपयोग कर रहे हैं?

+0

पर हूं मैं विंडोज़ xp – Pat

+0

पर हूं धन्यवाद यह काम करता है। – Pat

1

उपर्युक्त के अलावा, प्रिंटफ केवल एक नई लाइन तक पहुंचने पर ही अपने बफर को फ्लश करेगा।

यदि आप विंडोज़ पर चल रहे हैं, तो \n के बजाय एक नई लाइन \r\n है।

वैकल्पिक रूप से आप कर सकते हैं:

fflush(stdout); 

एक अन्य विकल्प को फोन करके बफरिंग बंद करने के लिए है:

setbuf(stdout, NULL); 

संपादित करें:

बस पाया इस समान (लेकिन एक ही नहीं) प्रश्न: Why does printf not flush after the call unless a newline is in the format string?

+1

आपको विंडोज़ पर '\ r' के बारे में चिंता करने की ज़रूरत नहीं है। जब आप '\ n' भेजते हैं तो स्ट्रीम द्वारा इसे संभाला जाता है। –

+0

धन्यवाद। Fflush (stdout) मेरी समस्या हल हो गई। – Pat

+0

हालांकि इसकी आवश्यकता नहीं होनी चाहिए! –

संबंधित मुद्दे