C++ में किसी फाइल को कैसे पढ़ें और लिखें?

How Read Write File C



इस लेख में, हम आपको कई उदाहरणों का उपयोग करके सी ++ प्रोग्रामिंग भाषा में फ़ाइल को पढ़ने और लिखने का तरीका दिखाने जा रहे हैं। पढ़ने और लिखने जैसे सी ++ फ़ाइल संचालन को समझने के लिए, हमें पहले सी ++ में स्ट्रीम की अवधारणा को समझना होगा।

एक स्ट्रीम क्या है?

एक धारा केवल डेटा या वर्णों का प्रवाह है। स्ट्रीम दो प्रकार की होती हैं: इनपुट स्ट्रीम और आउटपुट स्ट्रीम। एक इनपुट स्ट्रीम का उपयोग बाहरी इनपुट डिवाइस जैसे कि कीबोर्ड से डेटा को पढ़ने के लिए किया जाता है, जबकि आउटपुट स्ट्रीम का उपयोग बाहरी आउटपुट डिवाइस जैसे मॉनिटर पर डेटा लिखने के लिए किया जाता है। एक फ़ाइल को इनपुट और आउटपुट स्रोत दोनों के रूप में माना जा सकता है।









C++ में, हम किसी बाहरी स्रोत से डेटा भेजने या प्राप्त करने के लिए एक स्ट्रीम का उपयोग करते हैं।



हम इनपुट/आउटपुट स्ट्रीम, यानी आईओएस तक पहुंचने के लिए अंतर्निर्मित कक्षाओं का उपयोग कर सकते हैं।





यहाँ C++ प्रोग्रामिंग भाषा का स्ट्रीम क्लास पदानुक्रम है:



cin और cout ऑब्जेक्ट्स का उपयोग क्रमशः कीबोर्ड से डेटा पढ़ने और मॉनिटर पर आउटपुट प्रदर्शित करने के लिए किया जाता है। इसके अलावा, ifstream, जो इनपुट फ़ाइल स्ट्रीम के लिए खड़ा है, का उपयोग फ़ाइल से डेटा की स्ट्रीम को पढ़ने के लिए किया जाता है, और ऑफ़स्ट्रीम, जो आउटपुट फ़ाइल स्ट्रीम के लिए खड़ा होता है, का उपयोग फ़ाइल में डेटा की स्ट्रीम लिखने के लिए किया जाता है।

Iostram.h फ़ाइल में C++ प्रोग्रामिंग भाषा में सभी आवश्यक मानक इनपुट/आउटपुट स्ट्रीम क्लासेस शामिल हैं।

उदाहरण

अब जब आप स्ट्रीम की मूल बातें समझ गए हैं, तो हम C++ में फ़ाइल संचालन को बेहतर ढंग से समझने में आपकी मदद करने के लिए निम्नलिखित उदाहरणों पर चर्चा करेंगे:

  • उदाहरण 1: फ़ाइल खोलें और बंद करें
  • उदाहरण 2: किसी फ़ाइल में लिखें
  • उदाहरण 3: फ़ाइल से पढ़ें
  • उदाहरण 4: किसी फ़ाइल को पढ़ें और लिखें
  • उदाहरण 5: बाइनरी फ़ाइल को पढ़ें और लिखें

उदाहरण 1: फ़ाइल खोलें और बंद करें

इस उदाहरण कार्यक्रम में, हम यह प्रदर्शित करेंगे कि फ़ाइल को कैसे खोलें/बनाएँ और फ़ाइल को C++ में कैसे बंद करें। जैसा कि आप नीचे दिए गए कार्यक्रम में देख सकते हैं, हमने फ़ाइल संचालन के लिए आवश्यक पुस्तकालय को शामिल किया है।

किसी फ़ाइल को खोलने और बंद करने के लिए, हमें स्ट्रीम की एक वस्तु की आवश्यकता होती है। फिर किसी फाइल को पढ़ने या लिखने के लिए हमें फाइल को खोलना होता है। हमने लाइन नंबर -1 पर fstream हेडर फाइल को शामिल किया है ताकि हम स्ट्रीम क्लास तक पहुंच सकें।

हमने myFile_Handler को मुख्य फ़ंक्शन के अंदर ऑफ़स्ट्रीम के ऑब्जेक्ट के रूप में घोषित किया है। फिर हम खाली फ़ाइल बनाने के लिए ओपन () फ़ंक्शन का उपयोग कर सकते हैं और फ़ाइल को बंद करने के लिए क्लोज़ () फ़ंक्शन का उपयोग कर सकते हैं।

#शामिल

का उपयोग करते हुए नाम स्थानघंटे;

NSमुख्य()
{
ऑफस्ट्रीम myFile_Handler;

// फाइल ओपन
मायफाइल_हैंडलर.खोलना('फ़ाइल_1.txt');

// फ़ाइल बंद करें
मायफाइल_हैंडलर.बंद करे();
वापसी 0;
}

अब, हम प्रोग्राम को संकलित करेंगे और आउटपुट की जांच करेंगे। जैसा कि आप नीचे आउटपुट विंडो में देख सकते हैं, File_1.txt फ़ाइल प्रोग्राम को निष्पादित करने के बाद बनाई गई थी। फ़ाइल का आकार शून्य है क्योंकि हमने फ़ाइल में कोई सामग्री नहीं लिखी है।

उदाहरण 2: किसी फ़ाइल में लिखें

पिछले उदाहरण कार्यक्रम में, हमने आपको दिखाया था कि फ़ाइल कैसे खोलें और फ़ाइल को कैसे बंद करें। अब, हम आपको दिखाएंगे कि किसी फाइल में कुछ कैसे लिखना है।

हम स्ट्रीम इंसर्शन ऑपरेटर का उपयोग करके फ़ाइल को लिख सकते हैं, अर्थात,<<. In this program, we have used the file handler and insertion operator to write two lines in the file. The insertion operator (<<) indicates that we are inserting the string into the output file stream object.

#शामिल

का उपयोग करते हुए नाम स्थानघंटे;

NSमुख्य()
{
ऑफस्ट्रीम myFile_Handler;
// फाइल ओपन
मायफाइल_हैंडलर.खोलना('फ़ाइल_1.txt');

// फ़ाइल में लिखें
myFile_Handler<< 'यह एक नमूना परीक्षण फ़ाइल है। ' <<एंडली;
myFile_Handler<< 'यह फ़ाइल की दूसरी पंक्ति है। ' <<एंडली;

// फ़ाइल बंद करें
मायफाइल_हैंडलर.बंद करे();
वापसी 0;
}

अब, हम उपरोक्त प्रोग्राम को संकलित करेंगे और इसे निष्पादित करेंगे। जैसा कि आप नीचे देख सकते हैं, हमने File_1.txt फ़ाइल को सफलतापूर्वक लिख लिया है।

उदाहरण 3: फ़ाइल से पढ़ें

पिछले उदाहरणों में, हमने आपको दिखाया कि किसी फ़ाइल में सामग्री कैसे लिखी जाती है। अब, हम उस फ़ाइल की सामग्री को पढ़ते हैं जिसे हमने उदाहरण -2 में बनाया था और सामग्री को मानक आउटपुट डिवाइस, यानी मॉनिटर पर प्रदर्शित करते हैं।

हम फ़ाइल से पूरी लाइन को पढ़ने के लिए गेटलाइन () फ़ंक्शन का उपयोग करते हैं और फिर मॉनिटर पर लाइन को प्रिंट करने के लिए cout करते हैं।

#शामिल
#शामिल
#शामिल

का उपयोग करते हुए नाम स्थानघंटे;

NSमुख्य()
{
ifstream myFile_Handler;
स्ट्रिंग myLine;

// फ़ाइल रीड मोड में खोलें
मायफाइल_हैंडलर.खोलना('फ़ाइल_1.txt');

अगर(मायफाइल_हैंडलर.खुला है())
{
// फाइल को पढ़ते रहें
जबकि(लाइन में आओ(myFile_Handler, myLine))
{
// मानक आउटपुट पर लाइन प्रिंट करें
लागत <<मेरी लाइन<<एंडली;
}
// फ़ाइल बंद करें
मायफाइल_हैंडलर.बंद करे();
}
अन्यथा
{
लागत << 'फ़ाइल खोलने में असमर्थ!';
}
वापसी 0;
}

अब, हम निम्न कमांड का उपयोग करके File_1.txt की सामग्री को प्रिंट करेंगे: cat File_1.txt। एक बार जब हम प्रोग्राम को संकलित और निष्पादित करते हैं, तो यह स्पष्ट है कि आउटपुट फ़ाइल की सामग्री से मेल खाता है। इसलिए, हमने फ़ाइल को सफलतापूर्वक पढ़ लिया है और फ़ाइल की सामग्री को मॉनिटर पर प्रिंट कर दिया है।

उदाहरण 4: किसी फ़ाइल को पढ़ें और लिखें

अब तक, हमने आपको दिखाया है कि किसी फ़ाइल को कैसे खोलना, पढ़ना, लिखना और बंद करना है। सी ++ में, हम एक ही समय में एक फाइल को पढ़ और लिख सकते हैं। किसी फ़ाइल को पढ़ने और लिखने दोनों के लिए, हमें एक fstream ऑब्जेक्ट प्राप्त करना होगा और फ़ाइल को ios::in और ios::out मोड में खोलना होगा।

इस उदाहरण में, हम पहले फ़ाइल में कुछ सामग्री लिखते हैं। फिर, हम फ़ाइल से डेटा पढ़ते हैं और इसे मॉनिटर पर प्रिंट करते हैं।

#शामिल
#शामिल
#शामिल

का उपयोग करते हुए नाम स्थानघंटे;

NSमुख्य()
{
fstream myFile_Handler;
स्ट्रिंग myLine;

// फाइल ओपन
मायफाइल_हैंडलर.खोलना('फ़ाइल_1.txt', आईओएस::में |आईओएस::बाहर);

// जांचें कि क्या फ़ाइल खुल गई है
अगर(!myFile_Handler)
{
लागत << 'फाइल नहीं खुली!';
बाहर जाएं(1);
}

// फ़ाइल में लिखें
myFile_Handler<< '1. यह एक और नमूना परीक्षण फ़ाइल है। ' <<एंडली;
myFile_Handler<< '2. यह फ़ाइल की दूसरी पंक्ति है। ' <<एंडली;

मायफाइल_हैंडलर.तलाश(आईओएस::निवेदन करना);

// फ़ाइल पढ़ें
अगर(मायफाइल_हैंडलर.खुला है())
{
// फाइल को पढ़ते रहें
जबकि(लाइन में आओ(myFile_Handler, myLine))
{
// मानक आउटपुट पर लाइन प्रिंट करें
लागत <<मेरी लाइन<<एंडली;
}

// फ़ाइल बंद करें
मायफाइल_हैंडलर.बंद करे();
}
अन्यथा
{
लागत << 'फ़ाइल खोलने में असमर्थ!';
}
मायफाइल_हैंडलर.बंद करे();
वापसी 0;
}

अब, हम प्रोग्राम को संकलित और निष्पादित करेंगे।

उदाहरण 5: बाइनरी फ़ाइल को पढ़ें और लिखें

इस उदाहरण में, हम एक वर्ग घोषित करने जा रहे हैं और फिर ऑब्जेक्ट को एक बाइनरी फ़ाइल में लिखेंगे। इस उदाहरण को सरल बनाने के लिए, हमने कर्मचारी वर्ग को सार्वजनिक चर emp_id के साथ घोषित किया है। फिर, हम बाइनरी फ़ाइल को पढ़ेंगे और आउटपुट को मॉनिटर पर प्रिंट करेंगे।

#शामिल
#शामिल

का उपयोग करते हुए नाम स्थानघंटे;

कक्षाकर्मचारी
{
सह लोक:
NSemp_id;
};

NSमुख्य()
{
ऑफस्ट्रीम binOutFile_Handler;
इफस्ट्रीम बिनइनफाइल_हैंडलर;

कर्मचारी empObj_W, empObj_R;

// फाइल ओपन
बिनऑटफाइल_हैंडलर.खोलना('कर्मचारी.डेट', आईओएस::बाहर |आईओएस::बायनरी);

// जांचें कि क्या फ़ाइल खुल गई है
अगर(!binOutFile_Handler)
{
लागत << 'फाइल नहीं खुली!';
बाहर जाएं(1);
}

// प्रारंभिक empObj_W
empObj_W.emp_id = १५१२;

// फ़ाइल में लिखें
बिनऑटफाइल_हैंडलर.लिखो((char *) औरempObj_W,का आकार(कर्मचारी));
बिनऑटफाइल_हैंडलर.बंद करे();

अगर(!बिनऑटफाइल_हैंडलर.अच्छा())
{
लागत << 'बाइनरी फ़ाइल लिखने के दौरान त्रुटि हुई!' <<एंडली;
बाहर जाएं(2);
}

// अब, कर्मचारी को पढ़ते हैं। डेटा फ़ाइल
बिनइनफाइल_हैंडलर.खोलना('कर्मचारी.डेट', आईओएस::में |आईओएस::बायनरी);
// जांचें कि क्या फ़ाइल खुल गई है
अगर(!बिनइनफाइल_हैंडलर)
{
लागत << 'फाइल नहीं खुली!';
बाहर जाएं(3);
}

// बाइनरी फ़ाइल की सामग्री पढ़ें
बिनइनफाइल_हैंडलर.पढ़ना((char *) औरempObj_R,का आकार(कर्मचारी));
बिनइनफाइल_हैंडलर.बंद करे();

अगर(!बिनइनफाइल_हैंडलर.अच्छा())
{
लागत << 'बाइनरी फ़ाइल पढ़ने के दौरान त्रुटि हुई!' <<एंडली;
बाहर जाएं(4);
}

// empObj_R . के आउटपुट को प्रिंट करें
लागत << 'कर्मचारी का विवरण:' <<एंडली;
लागत << 'कर्मचारी आयडी : ' <<empObj_R.emp_id <<एंडली;

वापसी 0;
}

निष्कर्ष

फ़ाइलें मुख्य रूप से डेटा को संग्रहीत करने के लिए उपयोग की जाती हैं, और वे वास्तविक दुनिया की प्रोग्रामिंग में महत्वपूर्ण भूमिका निभाती हैं। इस लेख में, हमने आपको कई उदाहरणों के माध्यम से काम करके सी ++ प्रोग्रामिंग भाषा के साथ विभिन्न फ़ाइल संचालन का उपयोग करने का तरीका दिखाया। इसके अलावा, हमने आपको टेक्स्ट फ़ाइलों और बाइनरी फ़ाइलों दोनों में डेटा को पढ़ने और लिखने का तरीका दिखाया।