iostream मानक पुस्तकालय में मानक इनपुट स्ट्रीम से इनपुट स्वीकार करने के लिए और मानक आउटपुट स्ट्रीम में आउटपुट प्रिंट करने के लिए cout दो तरीके हैं। इस लेख में हम सीखेंगे कि फाइलों से क्लास ऑब्जेक्ट्स में डेटा कैसे पढ़ा जाए और क्लास ऑब्जेक्ट्स में डेटा कैसे लिखा जाए।
फ़ाइलों से डेटा पढ़ने और लिखने के लिए C++
- ifstream - इनपुट फ़ाइल स्ट्रीम का प्रतिनिधित्व करता है और फाइलों से जानकारी पढ़ता है।
- ऑफ़स्ट्रीम - आउटपुट फ़ाइल स्ट्रीम का प्रतिनिधित्व करता है और फाइलों को जानकारी लिखता है।
- fstream - सामान्य फ़ाइल स्ट्रीम का प्रतिनिधित्व करता है और इसमें दोनों की क्षमताएं हैं।
क्लास ऑब्जेक्ट बनाना
हम एक वर्ग कर्मचारी को नाम, कर्मचारी_आईडी, और वेतन के साथ सार्वजनिक डेटा सदस्यों के रूप में ले रहे हैं।
class Employee { public: char Name[]; long Employee_ID; int Salary; } ; Employee Emp_1; Emp_1.Name=”Jhonson”; Emp_1.Employee_ID=212020; Emp_1.Salary=11000;
फ़ाइल ऑब्जेक्ट बनाना
सिंटैक्स
fstream/ofstream/ifstream object_name; void open(const char *filename, ios::openmode); ofstream file1; file1.open( “Employee.txt”, ios::app );
-
यहाँ file1 वह वस्तु है जिसका उपयोग कर्मचारी.txt फ़ाइल को एपेंड मोड में खोलने के लिए किया जाता है (नई सामग्री अंत में संलग्न हो जाती है)। file1 ऑब्जेक्ट का प्रकार ऑफस्ट्रीम है जिसका अर्थ है कि हम Employee.txt में लिख सकते हैं।
ifstream file2; file2.open( “Employee.txt”, ios::in );
-
यहाँ file2 सामग्री को पढ़ने के लिए इनपुट मोड में कर्मचारी.txt फ़ाइल को खोलने के लिए उपयोग की जाने वाली वस्तु है। file1 ऑब्जेक्ट का प्रकार ifstream है जिसका अर्थ है कि हम केवल Employee.txt से डेटा पढ़ सकते हैं।
क्लास ऑब्जेक्ट लिखना और पढ़ना
file1.write( (char*)&Emp_1, sizeof(Emp1) );
-
यहां क्लास ऑब्जेक्ट में मौजूद डेटा Emp_1 को राइट फंक्शन को कॉल करके Employee.txt फाइल करने के लिए लिखा जाता है। (char*)&Emp_1 का उपयोग किसी ऑब्जेक्ट की शुरुआत में इंगित करने के लिए किया जाता है और sizeof(Emp_1) फ़ाइल में कॉपी किए गए बाइट्स की संख्या की गणना करता है।
file2.read( (char*)&Emp_1, sizeof(Emp1) );
-
यहां क्लास ऑब्जेक्ट Emp_1 में मौजूद डेटा को कर्मचारी.txt फ़ाइल से रीड फ़ंक्शन को कॉल करके पढ़ा जाता है। (char*)&Emp_1 का उपयोग किसी ऑब्जेक्ट की शुरुआत में इंगित करने के लिए किया जाता है और sizeof(Emp_1) फ़ाइल से पढ़े गए बाइट्स की संख्या की गणना करता है।
फ़ाइल बंद करना
file1.close(); file2.close();
फ़ाइलों की इनपुट स्ट्रीम और आउटपुट स्ट्रीम को बंद करने के लिए।
उदाहरण
#include <iostream> #include <fstream> using namespace std; // Class to define the properties class Employee { public: string Name; int Employee_ID; int Salary; }; int main(){ Employee Emp_1; Emp_1.Name="John"; Emp_1.Employee_ID=2121; Emp_1.Salary=11000; //Wriring this data to Employee.txt ofstream file1; file1.open("Employee.txt", ios::app); file1.write((char*)&Emp_1,sizeof(Emp_1)); file1.close(); //Reading data from EMployee.txt ifstream file2; file2.open("Employee.txt",ios::in); file2.seekg(0); file2.read((char*)&Emp_1,sizeof(Emp_1)); printf("\nName :%s",Emp_1.Name); printf("\nEmployee ID :%d",Emp_1.Employee_ID); printf("\nSalary :%d",Emp_1.Salary); file2.close(); return 0; }
आउटपुट
Name: John Employee ID: 2121 Salary: 11000