मैं एक लाइब्रेरी का उपयोग कर रहा हूं जो cout
या cerr
पर चेतावनी संदेश प्रिंट कर रहा है। मैं नहीं चाहता कि यह चेतावनी संदेश मेरे कार्यक्रम के आउटपुट तक पहुंच जाए। मैं इस आउटपुट को कैसे पकड़ सकता हूं और इसे /dev/null
या इसी तरह रख सकता हूं?फ़ंक्शन आउटपुट को रीडायरेक्ट करना/dev/null
मेगावाट:
#include <iostream>
void foo()
{
std::cout << "Boring message. " << std::endl;
};
int main()
{
foo();
std::cout << "Interesting message." << std::endl;
return 0;
}
उत्पादन किया जाना चाहिए:
Interesting message.
मैं main
कैसे को संशोधित करना चाहिए वांछित आउटपुट प्राप्त करने के लिए? (foo
बदल नहीं किया जाना चाहिए।)
मैं के रूप में इस सवाल का How can I redirect stdout to some visible display in a Windows Application? में सुझाव दिया freopen()
और fclose(stdout)
उपयोग करने की कोशिश। नतीजा यह है कि कुछ भी मुद्रित नहीं है।
हालांकि, यह काम आपको धन्यवाद, मैंने दूसरे उत्तर को स्वीकार किए गए उत्तर के रूप में चिह्नित करने का निर्णय लिया है। – Unapiedra
धन्यवाद @Unapiedra। शिष्टाचार हमेशा सराहना की :) – wreckgar23
क्या मैं वर्तमान स्थिति को 'rdstate' के माध्यम से सहेजने का सुझाव दे सकता हूं और उसके बाद इसे बाद में रीसेट कर सकता हूं? स्ट्रीम की स्थिति को साफ़ करने से यह थोड़ा सा सुरक्षित है। – SirGuy