C++ में फ़ाइल सिस्टम के साथ कार्य: व्यावहारिक उदाहरण

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय

फ़ाइल सिस्टम के साथ कार्य किसी भी अनुप्रयोग प्रोग्रामिंग में एक प्रमुख कार्य है। C++ में दो मुख्य दृष्टिकोण हैं: क्लासिकल (<fstream> लाइब्रेरी का उपयोग करके) और आधुनिक (<filesystem> लाइब्रेरी का उपयोग करके, जो C++17 मानक से उपलब्ध है)। इस लेख में हम व्यावहारिक उदाहरणों के साथ समझेंगे कि फ़ाइलों को कैसे पढ़ें और लिखें, निर्देशिकाओं को कैसे बनाएं और हटाएं, और फ़ाइलों के अस्तित्व की जाँच कैसे करें।

यह सामग्री उन शुरुआती लोगों के लिए उपयोगी होगी जो C++ सीख रहे हैं, साथ ही अनुभवी डेवलपर्स के लिए भी जो भाषा की आधुनिक क्षमताओं के बारे में अपने ज्ञान को ताज़ा करना चाहते हैं।



1. fstream का उपयोग करके टेक्स्ट फ़ाइलों को पढ़ना और लिखना

<fstream> लाइब्रेरी फ़ाइलों के साथ कार्य करने के लिए क्लास प्रदान करती है: ifstream (पढ़ना), ofstream (लिखना) और fstream (पढ़ना और लिखना)।



1.1. फ़ाइल में डेटा लिखना

फ़ाइल में लिखने के लिए हम ofstream ऑब्जेक्ट का उपयोग करते हैं। यदि फ़ाइल मौजूद नहीं है, तो वह बनाई जाएगी। यदि मौजूद है, तो सामग्री को ओवरराइट किया जाएगा (डिफ़ॉल्ट रूप से)।

#include <iostream>#include <fstream>#include <string>

int main() { std::ofstream outFile("example.txt"); if (!outFile.is_open()) { std::cerr << "फ़ाइल खोलने में त्रुटि!" << std::endl; return 1; }

outFile << "नमस्ते, दुनिया!" << std::endl; outFile << "यह दूसरी पंक्ति है।" << std::endl; outFile.close(); std::cout << "डेटा लिखा गया।" << std::endl; return 0;}

ध्यान दें: हम हमेशा जाँचते हैं कि फ़ाइल खुली है या नहीं, और उपयोग के बाद उसे बंद करते हैं।



1.2. फ़ाइल से डेटा पढ़ना

पढ़ने के लिए हम ifstream का उपयोग करते हैं। सबसे सरल तरीका std::getline का उपयोग करके पंक्ति दर पंक्ति पढ़ना है।

#include <iostream>#include <fstream>#include <string>

int main() { std::ifstream inFile("example.txt"); if (!inFile.is_open()) { std::cerr << "फ़ाइल खोलने में त्रुटि!" << std::endl; return 1; }

std::string line; while (std::getline(inFile, line)) { std::cout << line << std::endl; } inFile.close(); return 0;}

यह विधि सुविधाजनक है क्योंकि यह स्वचालित रूप से फ़ाइल के अंत को संभालती है और अतिरिक्त जाँच की आवश्यकता नहीं होती है।



1.3. फ़ाइल खोलने के मोड

आप खोलने के मोड को नियंत्रित करने के लिए फ़्लैग्स को जोड़ सकते हैं। उदाहरण के लिए, फ़ाइल के अंत में डेटा जोड़ने के लिए (एपेंड मोड), std::ios::app फ़्लैग का उपयोग करें:

std::ofstream outFile("example.txt", std::ios::app);outFile << "अतिरिक्त पंक्ति।" << std::endl;outFile.close();

अन्य उपयोगी फ़्लैग्स: std::ios::binary (बाइनरी मोड), std::ios::trunc (खोलने पर फ़ाइल साफ़ करना)।



2. फ़ाइल सिस्टम के साथ आधुनिक कार्य (C++17 और filesystem)

<filesystem> लाइब्रेरी फ़ाइलों और फ़ोल्डरों के साथ हेरफेर को काफी सरल बनाती है। सभी फ़ंक्शन std::filesystem नेमस्पेस में हैं।



2.1. फ़ाइल या निर्देशिका के अस्तित्व की जाँच

exists() फ़ंक्शन true लौटाता है यदि ऑब्जेक्ट मौजूद है:

#include <iostream>#include <filesystem>

namespace fs = std::filesystem;

int main() { std::string path = "example.txt"; if (fs::exists(path)) { std::cout << "फ़ाइल मौजूद है।" << std::endl; } else { std::cout << "फ़ाइल नहीं मिली।" << std::endl; } return 0;}


2.2. निर्देशिकाएँ बनाना और हटाना

फ़ोल्डर बनाने के लिए create_directory() का उपयोग करें। हटाने के लिए remove() या remove_all() (पुनरावर्ती हटाना) का उपयोग करें।

ब्लॉग

पुस्तक अनुशंसाएँ