C++ फ़ाइल हैंडलिंग: फ़ाइलों को कैसे खोलें, लिखें, पढ़ें, बंद करें C++

फ़ाइल हैंडलिंग क्या है? C++?

फ़ाइलें डेटा को स्टोरेज डिवाइस में स्थायी रूप से संग्रहीत करती हैं। फ़ाइल हैंडलिंग के साथ, प्रोग्राम से आउटपुट को फ़ाइल में संग्रहीत किया जा सकता है। फ़ाइल में रहते हुए डेटा पर विभिन्न ऑपरेशन किए जा सकते हैं।

स्ट्रीम एक डिवाइस का एक अमूर्त रूप है जहाँ इनपुट/आउटपुट ऑपरेशन किए जाते हैं। आप स्ट्रीम को गंतव्य या अनिश्चित लंबाई के अक्षरों के स्रोत के रूप में प्रस्तुत कर सकते हैं। यह उनके उपयोग से निर्धारित होगा। C++ आपको एक लाइब्रेरी प्रदान करता है जो फ़ाइल हैंडलिंग के लिए विधियों के साथ आता है। आइए इस पर चर्चा करें।

एफस्ट्रीम लाइब्रेरी

fstream लाइब्रेरी प्रदान करता है C++ प्रोग्रामर के पास फ़ाइलों के साथ काम करने के लिए तीन क्लास हैं। इन क्लास में शामिल हैं:

  • ऑफस्ट्रीम- यह क्लास आउटपुट स्ट्रीम को दर्शाता है। इसका उपयोग फ़ाइलें बनाने और फ़ाइलों में जानकारी लिखने के लिए किया जाता है।
  • अगरस्ट्रीम- यह क्लास एक इनपुट स्ट्रीम का प्रतिनिधित्व करता है। इसका उपयोग डेटा फ़ाइलों से जानकारी पढ़ने के लिए किया जाता है।
  • उपजा हुआ- यह क्लास आम तौर पर एक फ़ाइल स्ट्रीम का प्रतिनिधित्व करता है। यह ofstream/ifstream क्षमताओं के साथ आता है। इसका मतलब है कि यह फ़ाइलें बनाने, फ़ाइलों में लिखने, डेटा फ़ाइलों से पढ़ने में सक्षम है।

निम्नलिखित चित्र से इसे समझना आसान हो जाता है:

एफस्ट्रीम लाइब्रेरी
एफस्ट्रीम लाइब्रेरी

fstream लाइब्रेरी की उपरोक्त क्लासेस का उपयोग करने के लिए, आपको इसे अपने प्रोग्राम में हेडर फ़ाइल के रूप में शामिल करना होगा। बेशक, आप #include प्रीप्रोसेसर निर्देश का उपयोग करेंगे। आपको iostream हेडर फ़ाइल भी शामिल करनी होगी।

फ़ाइलें कैसे खोलें

किसी फ़ाइल पर कोई भी ऑपरेशन करने से पहले, आपको उसे पहले खोलना होगा। अगर आपको फ़ाइल में लिखना है, तो उसे fstream या ofstream ऑब्जेक्ट का उपयोग करके खोलें। अगर आपको फ़ाइल से सिर्फ़ पढ़ना है, तो उसे ifstream ऑब्जेक्ट का उपयोग करके खोलें।

तीन ऑब्जेक्ट्स, यानी fstream, ofstream और ifstream, में open() फ़ंक्शन परिभाषित है। फ़ंक्शन इस सिंटैक्स को अपनाता है:

open (file_name, mode);
  • फ़ाइल_नाम पैरामीटर खोले जाने वाली फ़ाइल का नाम दर्शाता है।
  • मोड पैरामीटर वैकल्पिक है। यह निम्न में से कोई भी मान ले सकता है:
वैल्यू विवरण
आईओएस:: ऐप एपेंड मोड। फ़ाइल में भेजा गया आउटपुट इसमें जोड़ दिया जाता है।
आईओएस::ate यह आउटपुट के लिए फ़ाइल को खोलता है और फिर पढ़ने और लिखने के नियंत्रण को फ़ाइल के अंत में ले जाता है।
आईओएस::इन यह फ़ाइल को पढने के लिए खोलता है।
आईओएस::आउट यह फ़ाइल को लिखने के लिए खोलता है।
आईओएस::ट्रंक यदि कोई फ़ाइल मौजूद है, तो उसे खोलने से पहले फ़ाइल तत्वों को काट दिया जाना चाहिए।

एक ही समय में दो मोड का उपयोग करना संभव है। आप उन्हें | (OR) ऑपरेटर का उपयोग करके संयोजित कर सकते हैं।

उदाहरण 1:

#include <iostream>
#include <fstream>
using namespace std;
int main() {
	fstream my_file;
	my_file.open("my_file", ios::out);
	if (!my_file) {
		cout << "File not created!";
	}
	else {
		cout << "File created successfully!";
		my_file.close(); 
	}
	return 0;
}

आउटपुट:

फ़ाइलें खोलें

कोड का स्क्रीनशॉट यहां दिया गया है:

फ़ाइलें खोलें

कोड स्पष्टीकरण:

  1. प्रोग्राम के कार्यों का उपयोग करने के लिए प्रोग्राम में iostream हेडर फ़ाइल शामिल करें।
  2. प्रोग्राम की कक्षाओं का उपयोग करने के लिए उसमें fstream हेडर फ़ाइल शामिल करें।
  3. अपने कोड में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसकी क्लासों का उपयोग किया जा सके।
  4. main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इसके बॉडी के अंदर जाना चाहिए।
  5. fstream वर्ग का एक ऑब्जेक्ट बनाएं और इसे my_file नाम दें।
  6. नई फ़ाइल बनाने के लिए ऊपर दिए गए ऑब्जेक्ट पर open() फ़ंक्शन लागू करें। आउट मोड हमें फ़ाइल में लिखने की अनुमति देता है।
  7. फ़ाइल निर्माण विफल हुआ या नहीं, यह जाँचने के लिए if कथन का उपयोग करें।
  8. यदि फ़ाइल नहीं बनाई गई तो कंसोल पर प्रिंट करने के लिए संदेश.
  9. if कथन के मुख्य भाग का अंत.
  10. यदि फ़ाइल बनाई गई थी तो क्या करना है यह बताने के लिए else कथन का उपयोग करें।
  11. यदि फ़ाइल बनाई गई थी तो कंसोल पर प्रिंट करने के लिए संदेश.
  12. फ़ाइल को बंद करने के लिए ऑब्जेक्ट पर close() फ़ंक्शन लागू करें।
  13. else कथन के मुख्य भाग का अंत.
  14. यदि प्रोग्राम सफलतापूर्वक पूरा हो जाता है तो उसे मान अवश्य लौटाना चाहिए।
  15. main() फ़ंक्शन बॉडी का अंत.

फ़ाइलें कैसे बंद करें

एक बार C++ कार्यक्रम समाप्त हो जाता है, यह स्वचालित रूप से

  • धाराओं को बहा देता है
  • आवंटित मेमोरी को रिलीज़ करता है
  • खुली हुई फ़ाइलें बंद करता है.

हालाँकि, एक प्रोग्रामर के रूप में, आपको प्रोग्राम समाप्त होने से पहले खुली फ़ाइलों को बंद करना सीखना चाहिए।

fstream, ofstream, और ifstream ऑब्जेक्ट में फ़ाइलों को बंद करने के लिए close() फ़ंक्शन होता है। फ़ंक्शन इस सिंटैक्स को अपनाता है:

void close();

फ़ाइलों में कैसे लिखें

आप सीधे अपने कंप्यूटर से फ़ाइल में लिख सकते हैं C++ प्रोग्राम। इसके लिए आप स्ट्रीम इंसर्शन ऑपरेटर (<<) का उपयोग करते हैं। फ़ाइल में लिखा जाने वाला टेक्स्ट डबल-कोट्स में होना चाहिए।

आइये हम इसका प्रदर्शन करें।

उदाहरण 2:

#include <iostream>
#include <fstream>
using namespace std;
int main() {
	fstream my_file;
	my_file.open("my_file.txt", ios::out);
	if (!my_file) {
		cout << "File not created!";
	}
	else {
		cout << "File created successfully!";
		my_file << "Guru99";
		my_file.close();
	}
	return 0;
}

आउटपुट:

फ़ाइलों में कैसे लिखें

कोड का स्क्रीनशॉट यहां दिया गया है:

फ़ाइलों में कैसे लिखें

कोड स्पष्टीकरण:

  1. प्रोग्राम के कार्यों का उपयोग करने के लिए प्रोग्राम में iostream हेडर फ़ाइल शामिल करें।
  2. प्रोग्राम की कक्षाओं का उपयोग करने के लिए उसमें fstream हेडर फ़ाइल शामिल करें।
  3. प्रोग्राम में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसके क्लासों का उपयोग किया जा सके।
  4. main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
  5. fstream क्लास का एक उदाहरण बनाएं और इसे my_file नाम दें।
  6. my_file.txt नामक एक नई फ़ाइल बनाने के लिए open() फ़ंक्शन का उपयोग करें। फ़ाइल को लिखने के लिए आउट मोड में खोला जाएगा।
  7. यह जाँचने के लिए कि क्या फ़ाइल खोली नहीं गई है, if कथन का उपयोग करें।
  8. यदि फ़ाइल नहीं खुली है तो कंसोल पर प्रिंट करने के लिए पाठ.
  9. if कथन के मुख्य भाग का अंत.
  10. यदि फ़ाइल बनाई गई थी तो क्या करना है यह बताने के लिए else कथन का उपयोग करें।
  11. यदि फ़ाइल बनाई गई थी तो कंसोल पर प्रिंट करने के लिए पाठ.
  12. बनाई गई फ़ाइल में कुछ पाठ लिखें.
  13. फ़ाइल को बंद करने के लिए close() फ़ंक्शन का उपयोग करें।
  14. else कथन के मुख्य भाग का अंत.
  15. प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
  16. main() फ़ंक्शन के मुख्य भाग का अंत.

फ़ाइलों से कैसे पढ़ें

आप अपनी फ़ाइलों से जानकारी पढ़ सकते हैं C++ प्रोग्राम। यह स्ट्रीम एक्सट्रैक्शन ऑपरेटर (>>) का उपयोग करके संभव है। आप ऑपरेटर का उपयोग उसी तरह करते हैं जैसे आप कीबोर्ड से उपयोगकर्ता इनपुट पढ़ने के लिए करते हैं। हालाँकि, cin ऑब्जेक्ट का उपयोग करने के बजाय, आप ifstream/ fstream ऑब्जेक्ट का उपयोग करते हैं।

उदाहरण 3:

#include <iostream>
#include <fstream>
using namespace std;
int main() {
	fstream my_file;
	my_file.open("my_file.txt", ios::in);
	if (!my_file) {
		cout << "No such file";
	}
	else {
		char ch;

		while (1) {
			my_file >> ch;
			if (my_file.eof())
				break;

			cout << ch;
		}

	}
	my_file.close();
	return 0;
}

आउटपुट:

फ़ाइलों से पढ़ें

ऐसी कोई दस्तावेज

कोड का स्क्रीनशॉट यहां दिया गया है:

फ़ाइलों से पढ़ें

कोड स्पष्टीकरण:

  1. प्रोग्राम के कार्यों का उपयोग करने के लिए प्रोग्राम में iostream हेडर फ़ाइल शामिल करें।
  2. प्रोग्राम की कक्षाओं का उपयोग करने के लिए उसमें fstream हेडर फ़ाइल शामिल करें।
  3. प्रोग्राम में std नामस्थान को शामिल करें ताकि उसे कॉल किए बिना उसके क्लासों का उपयोग किया जा सके।
  4. main() फ़ंक्शन को कॉल करें। प्रोग्राम लॉजिक को इस फ़ंक्शन के मुख्य भाग में जोड़ा जाना चाहिए।
  5. fstream क्लास का एक उदाहरण बनाएं और इसे my_file नाम दें।
  6. my_file.txt नाम की नई फ़ाइल बनाने के लिए open() फ़ंक्शन का उपयोग करें। फ़ाइल को पढ़ने के लिए in मोड में खोला जाएगा।
  7. यह जाँचने के लिए कि क्या फ़ाइल मौजूद नहीं है, if कथन का उपयोग करें।
  8. यदि फ़ाइल नहीं मिलती है तो कंसोल पर प्रिंट करने के लिए पाठ.
  9. if कथन के मुख्य भाग का अंत.
  10. यदि फ़ाइल मिल जाए तो क्या करना है यह बताने के लिए else कथन का उपयोग करें।
  11. बनाओ चर चर नामित ch.
  12. बनाओ घुमाव के दौरान फ़ाइल सामग्री पर पुनरावृत्ति करने के लिए.
  13. फ़ाइल की सामग्री को चर ch में लिखें/संग्रहीत करें।
  14. यदि अंत तक नहीं पहुंचा गया है तो यह सुनिश्चित करने के लिए कि कम्पाइलर फ़ाइल से पढ़ना जारी रखता है, if स्थिति और eof() फ़ंक्शन का उपयोग करें, अर्थात फ़ाइल के अंत में।
  15. एक बार अंत तक पहुंचने पर फ़ाइल से पढ़ना बंद करने के लिए ब्रेक स्टेटमेंट का उपयोग करें।
  16. कंसोल पर चर ch की सामग्री प्रिंट करें।
  17. पूरे शरीर का अंत.
  18. else कथन के मुख्य भाग का अंत.
  19. फ़ाइल बंद करने के लिए close() फ़ंक्शन को कॉल करें।
  20. प्रोग्राम को सफलतापूर्वक पूरा होने पर मान लौटाना होगा।
  21. main() फ़ंक्शन के मुख्य भाग का अंत.

सारांश

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