दिलचस्प पोस्ट
PHP कनवर्ट तिथि स्वरूप डीडी / एमएम / य्याय => yyyy-mm-dd java.lang.NoClassDefFound त्रुटि: javax / servlet / jsp / tagext / TagLibraryValidator मैं NumPy में रिक्त अरै / मैट्रिक्स कैसे बनाऊं? मेरी प्रोग्राम दुर्घटना क्यों नहीं है जब मैं एक सरणी के अंत में लिखता हूं? ओवरफ्लोएर्राइट पायथन इं बहुत बड़ी सी को कन्वर्ट करने के लिए लंबा कैसे async विधि को पूरा करने के लिए प्रतीक्षा करने के लिए? Ffmpeg के साथ वीडियो के केंद्र में पारदर्शी वॉटरमार्क कैसे जोड़ें? जावा पैकेज से गुण फ़ाइल लोड करना एसेट फ़ोल्डर से sqlite फ़ाइल पढ़ना लोड किए गए छवियों के लिए jQuery का ईवेंट सी में बाइनरी में रूपांतरण कैसे निजी कुंजी के साथ। जावा पथनाम में एक स्थान के साथ कमांड निष्पादित करता है कार्यों का जावास्क्रिप्ट सरणी एक संकीर्ण सरणी पर फेरबदल

std :: cout प्रिंट नहीं होगा

क्या कोई परिस्थिति है जब std::cout << "hello" काम नहीं करता है? मेरे पास एसी / सी ++ कोड है, हालांकि std::cout कुछ भी मुद्रित नहीं करता है, यहां तक ​​कि निरंतर स्ट्रिंग (जैसे "हैलो")।

क्या जांचने के लिए कोई तरीका है कि क्या cout सक्षम / स्ट्रीम को खोलने में असमर्थ है? good() , bad() जैसे कुछ सदस्य कार्य हैं … लेकिन मुझे नहीं पता है कि मेरे लिए कौन सा उपयुक्त है

Solutions Collecting From Web of "std :: cout प्रिंट नहीं होगा"

सुनिश्चित करें कि आप स्ट्रीम फ्लश करते हैं यह आवश्यक है क्योंकि आउटपुट स्ट्रीम बफ़र कर रहे हैं और जब तक आप मैन्युअल रूप से इसे स्वयं फ्लश नहीं करते जब बफ़र को फ्लेवर किया जाएगा, तब आपको इसकी गारंटी नहीं है

 std::cout << "Hello" << std::endl; 

std::endl एक नई लाइन का उत्पादन करेगा और स्ट्रीम को फ्लश करेगा। वैकल्पिक रूप से, std::flush बस std::flush करेगा। फ्लशिंग को स्ट्रीम के सदस्य फ़ंक्शन का उपयोग करके भी किया जा सकता है:

 std::cout.flush(); 

यह संभव है कि std::cout बफरिंग के कारण काम नहीं करता (क्या आप लिख रहे हैं आउटपुट के बजाए std::cout के बफ़र में समाप्त होता है)

आप इनमें से एक काम कर सकते हैं:

  • स्पष्ट std::cout स्पष्ट रूप से:

     std::cout << "test" << std::flush; // std::flush is in <iostream> 

     std::cout << "test"; std::cout.flush(); // explicitly flush here 

     std::cout << "test" << std::endl; // endl sends newline char(s) and then flushes 
  • इसके बजाय std::cerr उपयोग करें std::cerr buffered नहीं है, लेकिन यह एक अलग स्ट्रीम का उपयोग करता है (यानी दूसरा समाधान आपके लिए काम नहीं करेगा यदि आप "कंसोल पर संदेश देखें" से अधिक रुचि रखते हैं)

बफरिंग को प्रभावी रूप से अक्षम करने के लिए आप इसे कॉल कर सकते हैं:

 std::setvbuf(stdout, NULL, _IONBF, 0); 

वैकल्पिक रूप से, आप अपने प्रोग्राम को कॉल कर सकते हैं और कमांड लाइन में आउटपुट बफ़रिंग अक्षम कर सकते हैं:

 stdbuf -o 0 ./yourprogram --yourargs 

ध्यान रखें कि यह आमतौर पर प्रदर्शन के कारणों के लिए नहीं किया जाता है।