Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में फ़ाइल से/से क्लास ऑब्जेक्ट्स पढ़ें/लिखें

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

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

  • 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

  1. फाइल कैसे बनाएं, उसमें डेटा कैसे लिखें और आईओएस पर उससे डेटा कैसे पढ़ें?

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

  1. फ़ाइल और डिस्प्ले से डेटा पढ़ने के लिए C प्रोग्राम लिखें

    समस्या किसी फ़ाइल में मौजूद वस्तुओं की एक श्रृंखला को कैसे पढ़ें और C प्रोग्रामिंग का उपयोग करके डेटा को कॉलम या सारणीबद्ध रूप में प्रदर्शित करें समाधान राइट मोड में एक फाइल बनाएं और फाइल में सूचनाओं की कुछ श्रृंखला लिखें और इसे फिर से बंद करें कंसोल पर कॉलम में डेटा की श्रृंखला खोलें और प्रदर्शित

  1. Iseek () C/C++ में वैकल्पिक nth बाइट को पढ़ने के लिए और इसे किसी अन्य फ़ाइल में लिखने के लिए

    इस ट्यूटोरियल में, हम वैकल्पिक nth बाइट को पढ़ने और इसे दूसरी फ़ाइल में लिखने के तरीके को समझने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें दो .txt फाइलें उपलब्ध कराई जाएंगी। हमारा काम Iseek () का उपयोग करके एक फ़ाइल से दूसरी फ़ाइल में सामग्री लिखना है, जिसका उपयोग फ़ाइल डिस्क्रिप्टर के पॉइं