C ++ में क्या स्ट्रीम हैं?
C ++ उपयोगकर्ताओं को कई पुस्तकालय प्रदान करता है जिनका उपयोग वे इनपुट / आउटपुट कार्यों को करने के लिए कर सकते हैं। इन कार्यों को बाइट अनुक्रमों के रूप में किया जाता है, जिसे लोकप्रिय रूप से धाराएं कहा जाता है।
धाराओं को दो में विभाजित किया गया है:
धाराओं के प्रकार
- इनपुट स्ट्रीम: यह एक प्रकार की धारा है, जिसमें बाइट्स डिवाइस से निकलते हैं जैसे कीबोर्ड से मुख्य मेमोरी तक।
- आउटपुट स्ट्रीम: यह एक प्रकार की धारा है जहाँ बाइट्स विपरीत दिशा में बहती हैं, यानी मुख्य मेमोरी से फिर डिस्प्ले स्क्रीन जैसी डिवाइस तक।
इस C ++ ट्यूटोरियल में आप सीखेंगे:
- C ++ में क्या स्ट्रीम हैं?
- धाराएँ कैसे काम करती हैं?
- फ़ंक्शन तालिका
- इनपुट / आउटपुट के लिए सी ++ हेडर फाइलें
- std :: cout
- एसटीडी :: सिन
- std :: cerr
- std :: clog
- IO स्ट्रीम के साथ त्रुटि से निपटने में:
धाराएँ कैसे काम करती हैं?
C ++ स्ट्रीम निम्नानुसार काम करती हैं:
- सबसे पहले, एक धारा को सही प्रकार से आरंभ किया जाता है।
- इसके बाद, आपको यह बताना चाहिए कि आई / ओ पॉइंट / पुट पॉइंटर्स का उपयोग करके कहां होगा।
- एक स्ट्रीम में सही स्थान पर पहुंचने के बाद, आप क्रमशः >> और << ऑपरेटरों का उपयोग करके इनपुट और आउटपुट कार्य कर सकते हैं।
फ़ंक्शन तालिका
स्ट्रीम.ह हेडर फ़ाइल में दिए गए कार्य निम्नलिखित हैं:
कक्षा | कार्यों |
फाइलबुफ | यह फ़ाइल बफ़र्स को पढ़ने / लिखने के लिए सेट करता है। इसमें क्लोज () और ओपन () फंक्शन हैं |
तलछट | यह वर्गों के लिए आधार वर्ग ifstream, fstream, और ofstream है। इसका संचालन फ़ाइल धाराओं के लिए आम है। |
इफस्ट्रीम | यह इनपुट ऑपरेशन प्रदान करने के लिए एक इनपुट फाइल स्ट्रीम क्लास है। |
भीतर का | यह आउटपुट ऑपरेशन प्रदान करने के लिए एक आउटपुट फाइल स्ट्रीम क्लास है। |
उपजा हुआ | यह एक इनपुट / आउटपुट स्ट्रीम क्लास है। यह एक साथ इनपुट / आउटपुट संचालन का समर्थन करता है। |
इनपुट / आउटपुट के लिए सी ++ हेडर फाइलें
C ++ तीन लाइब्रेरी प्रदान करता है जो बेसिक इनपुट / आउट टास्क करने के लिए फंक्शन के साथ आती हैं। वे सम्मिलित करते हैं:
- Iostream: यह मानक इनपुट / आउटपुट स्ट्रीम के लिए एक संक्षिप्त है। यह हेडर फ़ाइल सिनेमा / कॉट / cerr जैसी वस्तुओं के लिए परिभाषा के साथ आती है।
- Iomanip: यह इनपुट / आउटपुट जोड़तोड़ के लिए एक संक्षिप्त है। पुस्तकालय कार्यों के साथ आता है जिनका उपयोग धाराओं के हेरफेर के लिए किया जा सकता है। इसमें सेटव, सेटप्रेशर और अन्य जैसी वस्तुओं की परिभाषाएँ हैं।
- Fstream: यह फाइल स्ट्रीम का वर्णन करने के लिए एक हेडर फाइल है। यह उस डेटा को संभालता है जिसे फ़ाइल से इनपुट के रूप में पढ़ा जाता है या जिसे फ़ाइल, आउटपुट में लिखा जाता है।
C ++ में Cin और Cout कीवर्ड बहुत लोकप्रिय हैं। उनका उपयोग क्रमशः इनपुट और प्रिंटिंग आउटपुट लेने के लिए किया जाता है। उनका उपयोग करने के लिए, आपको अपने प्रोग्राम में iostream हेडर फ़ाइल को शामिल करना होगा। कारण यह है कि वे उस हेडर फ़ाइल में परिभाषित हैं। Iostream हेडर फ़ाइल को शामिल करने में विफलता एक त्रुटि उत्पन्न करेगी। यह C ++ कंपाइलर द्वारा विफलता का परिणाम कीवर्ड के अर्थ को समझने के लिए है।
Iostream हेडर फाइल में परिभाषित प्रमुख वस्तुएं हैं, सिने, कॉट, cerr और क्लॉग। आइए उनकी चर्चा करें।
std :: cout
कॉउट ऑब्जेक्ट iostream क्लास का एक उदाहरण है। इसका उपयोग मानक आउटपुट डिवाइस पर आउटपुट के उत्पादन के लिए किया जाता है, जो सामान्य रूप से स्क्रीन है। यह धारा सम्मिलन ऑपरेटर (<<) के साथ मिलकर उपयोग किया जाता है।
उदाहरण:
#includeusing namespace std;int main() {char welcome[] = "Welcome to Guru99";cout << welcome << endl;return 0;}
आउटपुट:
यहाँ कोड का एक स्क्रीनशॉट है:
कोड स्पष्टीकरण:
- Iostream हेडर फ़ाइल को शामिल करें जहाँ cout ऑब्जेक्ट परिभाषित है।
- एसटीडी नेमस्पेस शामिल करें ताकि हमें इसकी कक्षाओं का उपयोग करते समय इसे कॉल न करना पड़े।
- मुख्य () फ़ंक्शन को कॉल करें। प्रोग्राम कोड को उसके शरीर के भीतर जोड़ा जाना चाहिए। उद्घाटन घुंघराले ब्रेस {इसके शरीर की शुरुआत के निशान।
- आपका स्वागत है एक चरित्र चर नाम बनाएँ स्ट्रिंग में आपका स्वागत है।
- कंसोल पर स्ट्रिंग वेलकम का मूल्य प्रिंट करें। एंडल एक C ++ कीवर्ड अर्थ एंड लाइन है। यह कर्सर को अगली पंक्ति पर मुद्रण पाठ शुरू करने के लिए ले जाता है।
- कार्यक्रम को सफल निष्पादन पर मूल्य वापस करना चाहिए।
- फ़ंक्शन मुख्य के शरीर का अंत ()।
एसटीडी :: सिन
Cin ऑब्जेक्ट istream क्लास का एक उदाहरण है। यह इनपुट डिवाइस, कीबोर्ड से इनपुट पढ़ता है। यह आमतौर पर निष्कर्षण ऑपरेटर (>>) के साथ मिलकर उपयोग किया जाता है। निष्कर्षण ऑब्जेक्ट कीबोर्ड से सिने ऑब्जेक्ट से दर्ज किए गए डेटा को निकालने के लिए जिम्मेदार है।
उदाहरण:
निम्न उदाहरण दर्शाता है कि C ++ में कैसे सिनेम कीवर्ड का उपयोग करना है:
#includeusing namespace std;int main(){int number;cout << "Enter a number:";cin >> number;cout << "\nYou entered: " << number;return 0;}
आउटपुट:
यहाँ कोड का एक स्क्रीनशॉट है:
कोड स्पष्टीकरण:
- हमारे कार्यक्रम में iostream हेडर फ़ाइल शामिल करें। इस हेडर फ़ाइल में Cin ऑब्जेक्ट को परिभाषित किया गया है।
- अपनी कक्षाओं का उपयोग करने के लिए std नाम स्थान शामिल करें। इसकी कक्षाओं का उपयोग करते समय आपको एसटीडी पर कॉल नहीं करना होगा।
- मुख्य () फ़ंक्शन को कॉल करें। प्रोग्राम कोड को उसके शरीर के भीतर जोड़ा जाना चाहिए।
- कार्यक्रम के मुख्य भाग की शुरुआत।
- एक पूर्णांक चर नामांकित घोषित करें।
- उपयोगकर्ता को एक नंबर दर्ज करने के लिए संकेत देते हुए स्क्रीन पर एक संदेश प्रिंट करें।
- कीबोर्ड से कंसोल पर उपयोगकर्ता द्वारा दर्ज किया गया मान पढ़ें।
- अन्य पाठ के साथ कंसोल पर ऊपर पढ़ा गया मान प्रिंट करें।
- यदि यह सफलतापूर्वक निष्पादित होता है, तो प्रोग्राम को एक मूल्य वापस करना चाहिए।
- मुख्य कार्य के शरीर का अंत।
std :: cerr
C ++ ऑब्जेक्ट C ++ में त्रुटियों को आउटपुट करने के लिए मानक त्रुटि स्ट्रीम बनाता है। Cerr, ओस्ट्रीम क्लास का एक उदाहरण है। Cerr ऑब्जेक्ट unbuffered है। इसका मतलब है कि इसका उपयोग तब किया जाता है जब त्रुटि संदेश तुरंत प्रदर्शित किया जाना है।
चूंकि यह अपरिभाषित है, इसलिए यह बाद के प्रदर्शन के लिए त्रुटि संदेश संग्रहीत नहीं करता है। यह धारा सम्मिलन ऑपरेटर (<<) के साथ मिलकर उपयोग किया जाता है।
उदाहरण:
#includeusing namespace std;int main() {cerr << "An Error occurred!";return 0;}
आउटपुट:
यहाँ कोड का एक स्क्रीनशॉट है:
कोड स्पष्टीकरण:
- Iostream हैडर फ़ाइल को शामिल करें जहाँ cerr ऑब्जेक्ट परिभाषित किया गया है।
- एसटीडी नेमस्पेस शामिल करें ताकि हमें इसकी कक्षाओं का उपयोग करते समय इसे कॉल न करना पड़े।
- मुख्य () फ़ंक्शन को कॉल करें। कार्यक्रम तर्क को इसके शरीर के भीतर जोड़ा जाना चाहिए। उद्घाटन घुंघराले ब्रेस फ़ंक्शन के शरीर की शुरुआत को चिह्नित करता है।
- कंसोल पर कोई त्रुटि मुद्रित करने के लिए cerr ऑब्जेक्ट का उपयोग करें।
- कार्यक्रम को सफल निष्पादन पर एक मूल्य वापस करना चाहिए।
- मुख्य कार्य के शरीर का अंत।
std :: clog
क्लॉग ऑब्जेक्ट ओस्ट्रीम क्लास का एक उदाहरण है। इसका उपयोग मानक प्रदर्शन, मॉनिटर पर त्रुटियों को दिखाने के लिए किया जाता है। यह cerr ऑब्जेक्ट के समान है, लेकिन यह बफर है। चूंकि यह बफ़र्ड है, यह बफर में त्रुटि संदेश संग्रहीत करता है जब तक कि बफर भरा / फ्लश नहीं किया जाता है। यह धारा सम्मिलन ऑपरेटर (<<) के साथ मिलकर उपयोग किया जाता है।
उदाहरण:
#includeusing namespace std;int main() {clog << "An Error occurred!";return 0;}
आउटपुट:
यहाँ कोड का एक स्क्रीनशॉट है:
कोड स्पष्टीकरण:
- जिसमें iostream हेडर फ़ाइल शामिल है जिसमें क्लॉग ऑब्जेक्ट परिभाषित किया गया है।
- जिसमें std नाम स्थान भी शामिल है, ताकि हम बिना कॉल किए उसकी कक्षाओं का उपयोग कर सकें।
- मुख्य () फ़ंक्शन को कॉल करना। कार्यक्रम तर्क को इसके शरीर के भीतर जोड़ा जाना चाहिए। {फ़ंक्शन के शरीर की शुरुआत के निशान।
- मानक आउटपुट, मॉनिटर पर त्रुटि प्रिंट करने के लिए clog ऑब्जेक्ट का उपयोग करें।
- कार्यक्रम को सफल समापन पर एक मूल्य वापस करना होगा।
- फ़ंक्शन मुख्य के शरीर का अंत ()।
IO स्ट्रीम के साथ त्रुटि से निपटने में:
यह देखने के लिए कि क्या कोई स्ट्रीम मान्य है या नहीं, आप इसे बूलियन के रूप में उपयोग कर सकते हैं।
यहाँ एक उदाहरण है:
ifstream file( "myfile.txt" );if ( ! file ){cout << "File NOT opened!" << endl;}
स्ट्रीम स्थिति के लिए अधिक विवरण प्राप्त करने के लिए, आप इन कार्यों का उपयोग कर सकते हैं:
- अच्छा () - सब ठीक होने पर वापस लौट आएगा।
- खराब () - यदि कोई घातक त्रुटि होती है, तो यह सच होगा।
- असफल () - असफल स्ट्रीम ऑपरेशन के बाद सही लौटेगा।
- यदि यह किसी फ़ाइल के अंत तक पहुँचता है, तो eof () - सही लौटेगा।
यह जानने के लिए कि क्या कोई विशेष रीड / राइट ऑपरेशन विफल हो गया है, रीड रिजल्ट का परीक्षण करें।
उदाहरण के लिए, यह जांचने के लिए कि क्या उपयोगकर्ता ने एक वैध पूर्णांक दर्ज किया है, यह करें:
int p;if ( cin >> p ){cout << "Enter valid number" << endl;}
सारांश
- इनपुट और आउटपुट कार्य C ++ में बाइट अनुक्रम के माध्यम से किए जाते हैं। बाइट्स को धाराएं कहा जाता है।
- एक इनपुट स्ट्रीम में, बाइट्स इनपुट डिवाइस से कीबोर्ड की तरह मुख्य मेमोरी में प्रवाहित होते हैं।
- आउटपुट स्ट्रीम में, मुख्य मेमोरी से बाइट्स फिर मॉनिटर जैसे आउटपुट डिवाइस में।
- Cin ऑब्जेक्ट istream क्लास का एक उदाहरण है। यह कीबोर्ड की तरह इनपुट डिवाइस से इनपुट पढ़ता है।
- कॉउट ऑब्जेक्ट ओस्ट्रीम क्लास का एक उदाहरण है। यह मॉनिटर जैसे आउटपुट डिवाइस पर आउटपुट का उत्पादन करता है।
- सेर ऑब्जेक्ट ओस्ट्रीम क्लास का एक उदाहरण है। यह मॉनिटर पर त्रुटि ऑब्जेक्ट प्रदर्शित करता है।
- क्लॉग ऑब्जेक्ट ओस्ट्रीम क्लास का उदाहरण है। यह आउटपुट डिवाइस पर त्रुटि संदेश प्रदर्शित करता है।
- Clog ऑब्जेक्ट बफ़र त्रुटि संदेश, जबकि cerr ऑब्जेक्ट नहीं करता है।