C++-এ ফাইল ইনপুট এবং আউটপুট পরিচালনার জন্য ifstream, ofstream, এবং fstream ক্লাসগুলি ব্যবহৃত হয়। এগুলো fstream লাইব্রেরির অংশ, যা C++ স্ট্যান্ডার্ড লাইব্রেরির একটি গুরুত্বপূর্ণ উপাদান। এগুলোর সাহায্যে ফাইল থেকে ডেটা পড়া (ইনপুট) এবং ফাইলে ডেটা লেখা (আউটপুট) খুব সহজ হয়। প্রতিটি ক্লাসের উদ্দেশ্য এবং ব্যবহার কিভাবে করা হয় তা নিচে বিস্তারিত আলোচনা করা হলো।
১. ifstream (Input File Stream)
ifstream হলো একটি ইনপুট স্ট্রিম ক্লাস, যা শুধুমাত্র ফাইল থেকে ডেটা পড়ার জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি ফাইলের মধ্যে ডেটা পড়ে প্রোগ্রামে ব্যবহার করতে পারেন। এটি মূলত std::istream থেকে প্রাপ্ত একটি ক্লাস।
ব্যবহার:
- ফাইল থেকে ডেটা পড়া:
ifstreamব্যবহার করে ফাইল থেকে ডেটা পড়া হয়। - ফাইল খোলার জন্য
open()মেথড অথবা কনস্ট্রাকটরের মাধ্যমে ফাইল খোলা হয়। - ফাইল বন্ধ করার জন্য
close()মেথড ব্যবহার করা হয়।
উদাহরণ:
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::ifstream inFile("example.txt"); // ফাইল খুলে ইনপুট ফাইল স্ট্রিম তৈরি
if (!inFile) { // ফাইল খুলতে সমস্যা হলে
std::cerr << "Unable to open file" << std::endl;
return 1;
}
std::string line;
while (getline(inFile, line)) { // ফাইলের লাইন বাই লাইন পড়া
std::cout << line << std::endl; // প্রতিটি লাইন আউটপুট করা
}
inFile.close(); // ফাইল বন্ধ করা
return 0;
}২. ofstream (Output File Stream)
ofstream হলো একটি আউটপুট স্ট্রিম ক্লাস, যা শুধুমাত্র ফাইলে ডেটা লেখার জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি প্রোগ্রাম থেকে ফাইলে ডেটা লিখতে পারেন। এটি std::ostream থেকে প্রাপ্ত একটি ক্লাস।
ব্যবহার:
- ফাইলে ডেটা লেখা:
ofstreamব্যবহার করে ফাইলে ডেটা লেখা হয়। - ফাইল খোলার জন্য
open()মেথড অথবা কনস্ট্রাকটরের মাধ্যমে ফাইল খোলা হয়। - ফাইল বন্ধ করার জন্য
close()মেথড ব্যবহার করা হয়।
উদাহরণ:
#include <iostream>
#include <fstream>
int main() {
std::ofstream outFile("output.txt"); // ফাইল খুলে আউটপুট ফাইল স্ট্রিম তৈরি
if (!outFile) { // ফাইল খুলতে সমস্যা হলে
std::cerr << "Unable to open file" << std::endl;
return 1;
}
outFile << "Hello, this is a test message!" << std::endl; // ফাইলে লেখার জন্য
outFile << "C++ file handling is easy!" << std::endl;
outFile.close(); // ফাইল বন্ধ করা
return 0;
}৩. fstream (File Stream)
fstream হলো একটি ক্লাস যা ইনপুট এবং আউটপুট উভয় স্ট্রিম সমর্থন করে। এটি ifstream এবং ofstream এর মতোই কাজ করতে পারে, তবে এটি একটি ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখা উভয় কাজ করতে সক্ষম।
ব্যবহার:
- ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখা:
fstreamব্যবহার করে একটি ফাইল থেকে ডেটা পড়া এবং তাতে ডেটা লেখা যায়। - ফাইল খোলার জন্য
open()মেথড অথবা কনস্ট্রাকটরের মাধ্যমে ফাইল খোলা হয়। - ফাইল বন্ধ করার জন্য
close()মেথড ব্যবহার করা হয়।
উদাহরণ:
#include <iostream>
#include <fstream>
#include <string>
int main() {
std::fstream file("example.txt", std::ios::in | std::ios::out); // ফাইল খোলা পড়া এবং লেখা উভয়ের জন্য
if (!file) { // ফাইল খোলতে সমস্যা হলে
std::cerr << "Unable to open file" << std::endl;
return 1;
}
// ফাইল থেকে ডেটা পড়া
std::string line;
while (getline(file, line)) {
std::cout << "Read from file: " << line << std::endl;
}
// ফাইলে ডেটা লেখা
file.clear(); // EOF এবং অন্যান্য ফ্ল্যাগ মুছে ফেলুন
file.seekp(0, std::ios::end); // ফাইলের শেষে লেখা শুরু
file << "Adding a new line to the file." << std::endl;
file.close(); // ফাইল বন্ধ করা
return 0;
}ফাইল অপেনিং মোড
ifstream, ofstream, এবং fstream এর সাহায্যে ফাইল ওপেন করার সময় ভিন্ন ভিন্ন মোড ব্যবহার করা যায়। কিছু সাধারণ মোড নিচে দেয়া হলো:
std::ios::in: ফাইল পড়ার জন্য।std::ios::out: ফাইলে লেখার জন্য।std::ios::app: ফাইলের শেষে লেখা।std::ios::ate: ফাইল খোলার সময় শেষের দিকে চলে যায়।std::ios::binary: বাইনারি মোডে ফাইল খোলা।
উদাহরণ:
std::fstream file("file.bin", std::ios::in | std::ios::out | std::ios::binary);উপসংহার
ifstream: ফাইল থেকে ডেটা পড়ার জন্য।ofstream: ফাইলে ডেটা লেখার জন্য।fstream: ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখা উভয়ের জন্য।
এই তিনটি ক্লাসই ফাইল ম্যানিপুলেশন খুব সহজ এবং কার্যকরী করে তোলে। এগুলোর মাধ্যমে আপনি সহজেই ফাইলের সাথে কাজ করতে পারবেন এবং ইনপুট/আউটপুট অপারেশন সম্পাদন করতে পারবেন।
Read more