C ++ में clog ऑब्जेक्ट क्लास ओस्ट्रीम का एक ऑब्जेक्ट है। यह मानक C त्रुटि आउटपुट स्ट्रीम stderr के साथ जुड़ा हुआ है।
clog
और cerr
, दोनों के साथ जुड़ा हुआ है stderr
, लेकिन यह cerr
इस अर्थ में भिन्न है कि धाराएं clog
बफर हैं और स्वचालित रूप से बंधे नहीं हैं cout
।
बफ़र्ड आउटपुट अनफ़रवर्ड आउटपुट की तुलना में अधिक कुशल है। बफ़र्ड आउटपुट के मामले में, सभी आउटपुट को एक चर में सहेजा जाता है और एक ही बार में डिस्क पर लिखा जाता है। असंबद्ध आउटपुट के लिए, हमें डिस्क पर लिखना जारी रखना होगा।
महत्वपूर्ण त्रुटियों के लिए बफर आउटपुट को प्राथमिकता नहीं दी जाती है। सिस्टम क्रैश के मामले में, ऐसी स्थिति आ सकती है जहां आउटपुट अभी भी बफर में था और डिस्क पर नहीं लिखा गया था और त्रुटि संदेश पुनर्प्राप्त नहीं किया जा सकता है। हम सिस्टम क्रैश के मामले में त्रुटि डेटा को खोना नहीं कर सकते हैं, इसलिए हम धीमी होने के बावजूद डिस्क के लिए महत्वपूर्ण त्रुटियों को लिखते रहते हैं।
clog
आमतौर पर लॉगिंग उद्देश्यों के लिए उपयोग किया जाता है। गैर-महत्वपूर्ण ईवेंट लॉगिंग के लिए, दक्षता अधिक महत्वपूर्ण है इसलिए clog
इसे cerr को प्राथमिकता दी जाती है।
क्लॉग घोषणा
बाहरी ओस्ट्रीम क्लॉग;
इसे हेडर फ़ाइल "> हेडर फ़ाइल में परिभाषित किया गया है।
clog
वस्तु के दौरान या पहली बार के प्रकार का ऑब्जेक्ट से पहले प्रारंभ करने के लिए सुनिश्चित किया जाता है ios_base::Init
का निर्माण किया है। clog
किसी अन्य धारा से बंधा हुआ नहीं है।
क्लॉग में "c" "वर्ण" को संदर्भित करता है, इसलिए clog का अर्थ है "वर्ण लॉग"।
वर्णों की एक धारा को प्रदर्शित करने के लिए सम्मिलन ऑपरेटर (<<) के साथ क्लॉग ऑब्जेक्ट का उपयोग किया जाता है। सामान्य वाक्यविन्यास है:
clog << varName;
या
clog << "कुछ स्ट्रिंग";
निष्कर्षण ऑपरेटर का उपयोग चर, तार और जोड़तोड़ (जैसे endl
) के संयोजन के साथ एक से अधिक बार किया जा सकता है :
clog << var1 << "कुछ स्ट्रिंग" << var2 << endl;
उदाहरण: क्लॉग कैसे काम करता है?
#include #include using namespace std; int main() ( char fileName() = "data.txt"; ifstream infile(fileName); if(infile) cout << infile.rdbuf(); else clog << "Error while opening the file " << fileName << endl; return 0; )
इस प्रोग्राम में लॉग डेटा को स्ट्रीम करने के लिए clog का उपयोग किया जाता है क्योंकि इस मामले में त्रुटि एप्लिकेशन के लिए महत्वपूर्ण नहीं है। तो क्लॉग के बफर आउटपुट का उपयोग अधिक कुशल है
जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा (यदि फ़ाइल खोलने में कोई त्रुटि है):
फ़ाइल data.txt को खोलते समय त्रुटि