C++-এ <fstream> লাইব্রেরি ব্যবহার করে ক্লাস অবজেক্ট ফাইলে লিখা ও পড়া যায়। তিনটি মূল টাইপ:
ifstream— ইনপুট ফাইল স্ট্রিম (পড়ার জন্য)ofstream— আউটপুট ফাইল স্ট্রিম (লিখার জন্য)fstream— জেনারেল ফাইল স্ট্রিম (দুই কাজেই)
অবজেক্ট লিখা ও পড়া
// লিখা
ofstream file1;
file1.open("Employee.txt", ios::app);
file1.write((char*)&Emp_1, sizeof(Emp_1));
file1.close();
// পড়া
ifstream file2;
file2.open("Employee.txt", ios::in);
file2.read((char*)&Emp_1, sizeof(Emp_1));
file2.close();
(char*)&obj অবজেক্টের শুরুয় পয়েন্ট করে, sizeof(obj) বাইট কাউন্ট দেয়।
সম্পূর্ণ উদাহরণ
#include <iostream>
#include <fstream>
using namespace std;
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;
// ফাইলে লিখা
ofstream file1;
file1.open("Employee.txt", ios::app);
file1.write((char*)&Emp_1, sizeof(Emp_1));
file1.close();
// ফাইল থেকে পড়া
ifstream file2;
file2.open("Employee.txt", ios::in);
file2.seekg(0);
file2.read((char*)&Emp_1, sizeof(Emp_1));
cout << "Name: " << Emp_1.Name << "\n";
cout << "Employee ID: " << Emp_1.Employee_ID << "\n";
cout << "Salary: " << Emp_1.Salary << "\n";
file2.close();
return 0;
}
আউটপুট: Name: John Employee ID: 2121 Salary: 11000
দ্রষ্টব্য: string মেম্বার থাকলে বাইনারি রাইট/রিড সঠিক কাজ নাও করতে পারে। সিরিয়ালাইজেশন বা টেক্সট ফরম্যাট ভালো।