यह लूप में रखी स्ट्रिंग मुद्रित नहीं करता है। कार्यक्रम जी ++ की मदद से लिखा गया था, sys/types.h हेडर फाइल के साथ शामिलमेरा cout आउटपुट तुरंत क्यों नहीं दिखाई देता है?
for(int i=0;i<9;i++)
{
cout<<"||";
sleep(1);
}
यह लूप में रखी स्ट्रिंग मुद्रित नहीं करता है। कार्यक्रम जी ++ की मदद से लिखा गया था, sys/types.h हेडर फाइल के साथ शामिलमेरा cout आउटपुट तुरंत क्यों नहीं दिखाई देता है?
for(int i=0;i<9;i++)
{
cout<<"||";
sleep(1);
}
क्या आप की संभावना यहाँ देख रहे हैं उत्पादन का एक प्रभाव बफ़र की जा रही है। आम तौर पर आउटपुट वास्तव में std::endl
तक लिखा नहीं जाएगा जब तक उपयोग नहीं किया जाता है।
for(int i=0;i<9;i++)
{
// Flushes and adds a newline
cout<< "||" << endl;
sleep(1);
}
हुड std::endl
के तहत एक नई पंक्ति चरित्र जोड़ रहा है और उसके बाद std::flush
का उपयोग कर कंसोल के लिए उत्पादन के लिए मजबूर करने। आप सीधे std::flush
का उपयोग एक ही प्रभाव
for(int i=0;i<9;i++)
{
cout << "||" << flush;
sleep(1);
}
शायद आपको सटीक होना चाहिए कि अंत में दोनों लाइन का अंत जोड़ें और फ्लश कॉल करें। एक '\ n' अकेले ही पर्याप्त समय होना चाहिए। – Klaim
* आम तौर पर आउटपुट वास्तव में लिखा नहीं जाएगा ** जब तक कि एक नई लाइन मुद्रित नहीं होती **। * .. यह सही नहीं है। एक नई लाइन उस गारंटी नहीं देती है। ध्यान दें कि 'std :: endl' बफर ** और ** में एक नई लाइन जोड़ता है, फिर इसे फ्लश करें। – Nawaz
कारण std :: endl काम करता है यह लाइन सामग्री (\ n के लिए * nix, \ r \ n विंडोज़ के लिए) और एक std :: flush का अंत जोड़ता है। मुख्य भाग std :: flush है, लेकिन std :: endl निश्चित रूप से काम करता है। –
आप अपने उत्पादन निस्तब्धता नहीं कर रहे हैं पाने के लिए कर सकते हैं।
std::cout << "||" << std::flush;
'cout << "||" << endl; ' –
क्या आप त्रुटि पोस्ट कर सकते हैं? –