std::cerr और std::clog के साथ कार्य करना
cerr और clog धाराओं का उपयोग करके निदान-संदेशों और लॉग को प्रोग्राम के आउटपुट से अलग रखें।
std::cerr और std::clog के साथ कार्य करना, CoddyKit पर C++ Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह C++ Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
तीन आउटपुट स्ट्रीम
मानक लाइब्रेरी तीन पूर्वनिर्धारित आउटपुट स्ट्रीम उपलब्ध कराती है:
- std::cout — बफ़रयुक्त मानक आउटपुट
- std::cerr — बिना बफ़र वाला मानक त्रुटि आउटपुट
- std::clog — बफ़रयुक्त मानक त्रुटि आउटपुट
std::cerr: त्रुटियाँ और चेतावनियाँ
std::cerr stderr में लिखता है और बफ़र-रहित है — आउटपुट तुरंत दिखाई देता है, भले ही अगली ही घड़ी प्रोग्राम क्रैश हो जाए।
std::cerr << "Error: file not found\n";std::clog: बफ़रयुक्त लॉग
std::clog भी stderr में लिखता है, लेकिन cout की तरह बफ़रयुक्त होता है। इसका उपयोग नियमित लॉग के लिए करें, जहाँ थोड़ी देरी स्वीकार्य हो।
std::clog << "[info] processing record 42\n";stderr के लिए दो स्ट्रीम क्यों?
त्रुटियाँ तुरंत दिखाई देनी चाहिए, ताकि क्रैश से पहले उपयोगकर्ता उन्हें देख सके। लॉग की मात्रा बहुत अधिक होती है — उन्हें बफ़र करने से प्रदर्शन स्वीकार्य बना रहता है।
आउटपुट का पुनर्निर्देशन
कमांड लाइन पर stdout और stderr अलग-अलग चैनलों में जाते हैं। उन्हें स्वतंत्र रूप से पुनर्निर्देशित करें।
# Send stdout to a file, stderr to the terminal
./app > out.txt
# Send stderr to a file too
./app 2> err.txt
# Send both to one file
./app > all.txt 2>&1निदान-सूचना बनाम डेटा आउटपुट
परंपरा के अनुसार, मशीन-पठनीय डेटा stdout में और मानव-पठनीय निदान-सूचना stderr में भेजी जाती है। इससे डेटा-प्रवाह साफ़-सुथरे ढंग से काम करते हैं।
स्ट्रीम को एक-दूसरे से जोड़ना
cin डिफ़ॉल्ट रूप से cout से जुड़ा होता है — cin से पढ़ने पर पहले cout को फ्लश किया जाता है। cerr भी इसी तरह cout से जुड़ा होता है।
स्तरों के साथ कस्टम लॉगिंग
लॉग स्तरों — INFO, WARN, ERROR — के लिए clog को सहायक फलनों में लपेटें। इससे लॉग संदेश एकरूप रहते हैं।
void warn(const std::string& msg) {
std::clog << "[WARN] " << msg << "\n";
}
void error(const std::string& msg) {
std::cerr << "[ERROR] " << msg << "\n";
}प्रदर्शन: cerr धीमा है
क्योंकि cerr हर क्रिया के बाद फ्लश होता है, इसलिए बार-बार लिखना धीमा होता है। भारी लॉगिंग के लिए clog या किसी समर्पित लॉगिंग लाइब्रेरी को प्राथमिकता दें।
clog को मैन्युअल रूप से फ्लश करना
यदि आप चाहते हैं कि डिबगिंग के दौरान clog का आउटपुट तुरंत दिखाई दे, तो उसे मैन्युअल रूप से फ्लश करें।
std::clog << "checkpoint" << std::flush;फ़ाइल स्ट्रीम में लिखना
यही पैटर्न फ़ाइल स्ट्रीम के साथ भी काम करते हैं। std::ofstream से एक लॉग फ़ाइल खोलें और उसमें clog की तरह स्ट्रीम करें।
std::ofstream logFile("app.log");
logFile << "Application started\n";त्वरित जाँच
हर लेखन के बाद कौन-सी मानक स्ट्रीम अपने-आप फ्लश हो जाती है?
पुनरावलोकन
सामान्य आउटपुट के लिए std::cout, तुरंत दिखने वाली बफ़र-रहित त्रुटियों के लिए std::cerr, और बफ़रयुक्त लॉग के लिए std::clog का उपयोग करें। शेल में > और 2> के साथ उन्हें स्वतंत्र रूप से पुनर्निर्देशित करें।
एआई शिक्षक के साथ C++ सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 51
- पाठ
- 203
अक्सर पूछे जाने वाले प्रश्न
क्या “std::cerr और std::clog के साथ कार्य करना” पाठ निःशुल्क है?
हाँ — C++ Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “std::cerr और std::clog के साथ कार्य करना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। C++ Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“std::cerr और std::clog के साथ कार्य करना” में मैं क्या सीखूँगा?
cerr और clog धाराओं का उपयोग करके निदान-संदेशों और लॉग को प्रोग्राम के आउटपुट से अलग रखें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C++ Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या C++ Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C++ Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“std::cerr और std::clog के साथ कार्य करना” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस C++ Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर C++ Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- std::cin और std::cout का उचित उपयोग
- iomanip से आउटपुट फ़ॉर्मैट करना
- getline से इनपुट सुरक्षित रूप से पढ़ना
- std::cerr और std::clog के साथ कार्य करना