কম্পিউটার টিউটোরিয়াল

C++-এ বাইনারি ফাইল লিখা (Writing a binary file in C++)

বাইনারি ফাইল রাইটিং

C++-এ বাইনারি ফাইলে ডেটা লিখতে ofstream::write() মেথড ব্যবহার করা হয়। এটি নির্দিষ্ট বাইট সংখ্যা লিখে।

সিনট্যাক্স

ostream& write(const char* buffer, int size);

অ্যালগরিদম

  1. স্ট্রাকচার ডিফাইন করুন (যেমন Student)।
  2. ios::binary মোডে ফাইল খুলুন।
  3. এরর চেক করুন।
  4. ডেটা ইনিশিয়ালাইজ করুন।
  5. write((char*)&obj, sizeof(obj)) কল করুন।
  6. ফাইল ক্লোজ করুন এবং এরর চেক করুন।

উদাহরণ কোড

#include <iostream>
#include <fstream>
using namespace std;

struct Student {
    int roll_no;
    string name; // নোট: string বাইনারি লিখতে সমস্যা হয় (পয়েন্টার থাকে)। ফিক্সড char array ভালো।
};

int main() {
    ofstream wf("student.dat", ios::out | ios::binary);
    if (!wf) { cerr << "Cannot open file!"; return 1; }

    Student wstu[3] = {{1, "Ram"}, {2, "Shyam"}, {3, "Madhu"}};
    for (int i = 0; i < 3; i++)
        wf.write((char*)&wstu[i], sizeof(Student));

    wf.close();
    if (!wf.good()) { cerr << "Write error!"; return 1; }

    cout << "Student's Details:\n";
    for (int i = 0; i < 3; i++)
        cout << "Roll: " << wstu[i].roll_no << ", Name: " << wstu[i].name << endl;
    return 0;
}

আউটপুট

Student's Details:
Roll No: 1 Name: Ram
Roll No: 2 Name: Shyam
Roll No: 3 Name: Madhu

সাবধানতা: std::string বাইনারি লিখলে সঠিক কাজ করবে না কারণ এটি ডাইনামিক মেমরি ম্যানেজ করে। বাইনারি সিরিয়ালাইজেশনের জন্য ফিক্সড সাইজ টাইপ (যেমন char name[50]) বা সিরিয়ালাইজেশন লাইব্রেরি ব্যবহার করুন।

  1. C++-এ বাইনারি ট্রির মিনিমাম ডেপথ (Minimum Depth of Binary Tree)

  2. C++-এ বাইনারি ট্রি প্রিন্ট করা

  3. বাইনারি ট্রি প্রুনিং C++-এ

  4. বাইনারি সার্চ C++ প্রোগ্রামে