এই নিবন্ধে, আমরা আপনাকে দেখাবো কিভাবে C ++ প্রোগ্রামিং ল্যাঙ্গুয়েজে একটি ফাইল পড়তে এবং লিখতে হয় বেশ কয়েকটি উদাহরণ ব্যবহার করে। পড়া এবং লেখার মত C ++ ফাইল অপারেশন বোঝার জন্য, আমাদের প্রথমে C ++ এ একটি স্ট্রিমের ধারণা বুঝতে হবে।
একটি প্রবাহ কি?
একটি প্রবাহ কেবল তথ্য বা অক্ষরের একটি প্রবাহ। দুটি ধরণের স্ট্রিম রয়েছে: ইনপুট স্ট্রিম এবং আউটপুট স্ট্রিম। একটি ইনপুট স্ট্রিম একটি বহিরাগত ইনপুট ডিভাইস যেমন একটি কীবোর্ড থেকে ডেটা পড়ার জন্য ব্যবহৃত হয়, যখন একটি আউটপুট স্ট্রিম একটি মনিটরের মতো বাহ্যিক আউটপুট ডিভাইসে ডেটা লেখার জন্য ব্যবহৃত হয়। একটি ফাইল উভয়ই ইনপুট এবং আউটপুট উৎস হিসেবে বিবেচিত হতে পারে।
C ++ এ, আমরা একটি বহিরাগত উৎস থেকে বা তার থেকে তথ্য পাঠাতে বা গ্রহণ করতে একটি স্ট্রিম ব্যবহার করি।
আমরা একটি ইনপুট/আউটপুট স্ট্রিম অ্যাক্সেস করতে অন্তর্নির্মিত ক্লাস ব্যবহার করতে পারি, যেমন, আইওএস।
এখানে C ++ প্রোগ্রামিং ভাষার স্ট্রিম ক্লাস শ্রেণিবিন্যাস:
Cin এবং cout অবজেক্টগুলি যথাক্রমে কীবোর্ড থেকে ডেটা পড়তে এবং মনিটরে আউটপুট প্রদর্শন করতে ব্যবহৃত হয়। উপরন্তু, ifstream, যা ইনপুট ফাইল স্ট্রিমের জন্য দাঁড়িয়ে থাকে, একটি ফাইল থেকে ডেটার একটি প্রবাহ পড়তে ব্যবহৃত হয় এবং আউটস্ট্রিম, যা আউটপুট ফাইল স্ট্রীমের জন্য দাঁড়িয়ে থাকে, একটি ফাইলে ডেটা প্রবাহ লেখার জন্য ব্যবহৃত হয়।
Iostram.h ফাইলে C ++ প্রোগ্রামিং ল্যাঙ্গুয়েজে সমস্ত প্রয়োজনীয় স্ট্যান্ডার্ড ইনপুট/আউটপুট স্ট্রিম ক্লাস রয়েছে।
উদাহরণ
এখন যেহেতু আপনি স্ট্রিমগুলির মূল বিষয়গুলি বুঝতে পেরেছেন, আমরা C ++ এ ফাইল অপারেশনগুলি আরও ভালভাবে বুঝতে সাহায্য করার জন্য নিম্নলিখিত উদাহরণগুলি নিয়ে আলোচনা করব:
- উদাহরণ 1: একটি ফাইল খুলুন এবং বন্ধ করুন
- উদাহরণ 2: একটি ফাইলে লিখুন
- উদাহরণ 3: একটি ফাইল থেকে পড়ুন
- উদাহরণ 4: একটি ফাইল পড়ুন এবং লিখুন
- উদাহরণ 5: একটি বাইনারি ফাইল পড়ুন এবং লিখুন
উদাহরণ 1: একটি ফাইল খুলুন এবং বন্ধ করুন
এই উদাহরণ প্রোগ্রামে, আমরা দেখাব কিভাবে একটি ফাইল খুলতে/তৈরি করতে হয় এবং কিভাবে C ++ এ ফাইল বন্ধ করতে হয়। আপনি নীচের প্রোগ্রামে দেখতে পাচ্ছেন, আমরা ফাইল অপারেশনের জন্য প্রয়োজনীয় লাইব্রেরি অন্তর্ভুক্ত করেছি।
একটি ফাইল খুলতে এবং বন্ধ করতে, আমাদের একটি প্রবাহের বস্তু প্রয়োজন। তারপর, একটি ফাইল পড়তে বা লিখতে, আমাদের ফাইলটি খুলতে হবে। আমরা লাইন নম্বর -1 এ fstream হেডার ফাইলটি অন্তর্ভুক্ত করেছি যাতে আমরা স্ট্রিম ক্লাসে প্রবেশ করতে পারি।
আমরা একটি myFile_Handler কে প্রধান ফাংশনের ভিতরে প্রবাহের বস্তু হিসেবে ঘোষণা করেছি। তারপর আমরা একটি খালি ফাইল তৈরি করতে open () ফাংশন এবং ফাইল বন্ধ করার জন্য close () ফাংশন ব্যবহার করতে পারি।
#অন্তর্ভুক্তব্যবহার নামস্থানঘন্টার;
intপ্রধান()
{
অফস্ট্রিম myFile_Handler;
// খোলা ফাইল
myFile_Handler।খোলা('File_1.txt');
// ফাইল বন্ধ
myFile_Handler।বন্ধ();
প্রত্যাবর্তন 0;
}
এখন, আমরা প্রোগ্রামটি কম্পাইল করব এবং আউটপুট পরীক্ষা করব। আপনি নীচের আউটপুট উইন্ডোতে দেখতে পাচ্ছেন, প্রোগ্রামটি চালানোর পরে File_1.txt ফাইল তৈরি করা হয়েছিল। ফাইলের আকার শূন্য যেহেতু আমরা ফাইলে কোন বিষয়বস্তু লিখিনি।
উদাহরণ 2: একটি ফাইলে লিখুন
পূর্ববর্তী উদাহরণ প্রোগ্রামে, আমরা আপনাকে দেখিয়েছি কিভাবে একটি ফাইল খুলতে হয় এবং কিভাবে ফাইলটি বন্ধ করতে হয়। এখন, আমরা আপনাকে দেখাব কিভাবে একটি ফাইলে কিছু লিখতে হয়।
আমরা প্রবাহ সন্নিবেশ অপারেটর ব্যবহার করে একটি ফাইলে লিখতে পারি, যেমন,<<. In this program, we have used the file handler and insertion operator to write two lines in the file. The insertion operator (<<) indicates that we are inserting the string into the output file stream object.
#অন্তর্ভুক্তব্যবহার নামস্থানঘন্টার;
intপ্রধান()
{
অফস্ট্রিম myFile_Handler;
// খোলা ফাইল
myFile_Handler।খোলা('File_1.txt');
// ফাইলে লিখুন
myFile_Handler<< 'এটি একটি নমুনা পরীক্ষার ফাইল। ' <<endl;
myFile_Handler<< 'এটি ফাইলের দ্বিতীয় লাইন। ' <<endl;
// ফাইল বন্ধ
myFile_Handler।বন্ধ();
প্রত্যাবর্তন 0;
}
এখন, আমরা উপরের প্রোগ্রামটি সংকলন করব এবং এটি কার্যকর করব। আপনি নিচে দেখতে পাচ্ছেন, আমরা File_1.txt ফাইলটিতে সফলভাবে লিখেছি।
উদাহরণ 3: একটি ফাইল থেকে পড়ুন
পূর্ববর্তী উদাহরণগুলিতে, আমরা আপনাকে দেখিয়েছি কিভাবে একটি ফাইলে সামগ্রী লিখতে হয়। এখন, আসুন আমরা উদাহরণ -২ এ যে ফাইলটি তৈরি করেছি তা থেকে বিষয়বস্তু পড়ি এবং স্ট্যান্ডার্ড আউটপুট ডিভাইসে সামগ্রী প্রদর্শন করি, যেমন মনিটর।
আমরা getline () ফাংশন ব্যবহার করে ফাইল থেকে সম্পূর্ণ লাইন পড়ি এবং তারপর মনিটরে লাইন প্রিন্ট করার জন্য cout করি।
#অন্তর্ভুক্ত#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
ব্যবহার নামস্থানঘন্টার;
intপ্রধান()
{
ifstream myFile_Handler;
স্ট্রিং মাইলাইন;
// রিড মোডে ফাইল খুলুন
myFile_Handler।খোলা('File_1.txt');
যদি(myFile_Handler।খোলা())
{
// ফাইলটি পড়তে থাকুন
যখন(গেটলাইন(myFile_Handler, myLine))
{
// স্ট্যান্ডার্ড আউটপুটে লাইন প্রিন্ট করুন
খরচ <<আমার লাইন<<endl;
}
// ফাইল বন্ধ
myFile_Handler।বন্ধ();
}
অন্য
{
খরচ << 'ফাইল খুলতে অক্ষম!';
}
প্রত্যাবর্তন 0;
}
এখন, আমরা নিম্নলিখিত কমান্ড ব্যবহার করে File_1.txt এর বিষয়বস্তু মুদ্রণ করব: cat File_1.txt। একবার আমরা প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করলে, এটা স্পষ্ট যে আউটপুট ফাইলের বিষয়বস্তুর সাথে মেলে। অতএব, আমরা সফলভাবে ফাইলটি পড়েছি এবং ফাইলের বিষয়বস্তু মনিটরে প্রিন্ট করেছি।
উদাহরণ 4: একটি ফাইল পড়ুন এবং লিখুন
এখন পর্যন্ত, আমরা আপনাকে দেখিয়েছি কিভাবে একটি ফাইল খুলতে, পড়তে, লিখতে এবং বন্ধ করতে হয়। C ++ এ, আমরা একই সময়ে একটি ফাইল পড়তে এবং লিখতে পারি। একটি ফাইল পড়া এবং লিখতে উভয়ের জন্য, আমাদের একটি fstream বস্তু পেতে হবে এবং ios :: in এবং ios :: out মোডে ফাইলটি খুলতে হবে।
এই উদাহরণে, আমরা প্রথমে ফাইলটিতে কিছু বিষয়বস্তু লিখি। তারপরে, আমরা ফাইল থেকে ডেটা পড়ি এবং মনিটরে প্রিন্ট করি।
#অন্তর্ভুক্ত#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
ব্যবহার নামস্থানঘন্টার;
intপ্রধান()
{
fstream myFile_Handler;
স্ট্রিং মাইলাইন;
// খোলা ফাইল
myFile_Handler।খোলা('File_1.txt', আইওএস::ভিতরে |আইওএস::বাইরে);
// ফাইলটি খোলা আছে কিনা তা পরীক্ষা করুন
যদি(!myFile_Handler)
{
খরচ << 'ফাইল খোলা হয়নি!';
প্রস্থান(ঘ);
}
// ফাইলে লিখুন
myFile_Handler<< '1। এটি আরেকটি নমুনা পরীক্ষার ফাইল। ' <<endl;
myFile_Handler<< '2। এটি ফাইলের দ্বিতীয় লাইন। ' <<endl;
myFile_Handler।সন্ধান(আইওএস::ভিক্ষা);
// ফাইলটি পড়ুন
যদি(myFile_Handler।খোলা())
{
// ফাইলটি পড়তে থাকুন
যখন(গেটলাইন(myFile_Handler, myLine))
{
// স্ট্যান্ডার্ড আউটপুটে লাইন প্রিন্ট করুন
খরচ <<আমার লাইন<<endl;
}
// ফাইল বন্ধ
myFile_Handler।বন্ধ();
}
অন্য
{
খরচ << 'ফাইল খুলতে অক্ষম!';
}
myFile_Handler।বন্ধ();
প্রত্যাবর্তন 0;
}
এখন, আমরা প্রোগ্রামটি কম্পাইল এবং এক্সিকিউট করব।
উদাহরণ 5: একটি বাইনারি ফাইল পড়ুন এবং লিখুন
এই উদাহরণে, আমরা একটি ক্লাস ঘোষণা করতে যাচ্ছি এবং তারপর বস্তুটি একটি বাইনারি ফাইলে লিখব। এই উদাহরণটি সহজ করার জন্য, আমরা একটি পাবলিক ভেরিয়েবল emp_id দিয়ে কর্মচারী শ্রেণী ঘোষণা করেছি। তারপরে, আমরা বাইনারি ফাইলটি পড়ব এবং মনিটরে আউটপুট প্রিন্ট করব।
#অন্তর্ভুক্ত#অন্তর্ভুক্ত
ব্যবহার নামস্থানঘন্টার;
শ্রেণীকর্মচারী
{
জনসাধারণ:
intemp_id;
};
intপ্রধান()
{
ofstream binOutFile_Handler;
ifstream binInFile_Handler;
কর্মচারী empObj_W, empObj_R;
// খোলা ফাইল
binOutFile_Handler।খোলা('কর্মচারী তারিখ', আইওএস::বাইরে |আইওএস::বাইনারি);
// ফাইলটি খোলা আছে কিনা তা পরীক্ষা করুন
যদি(!binOutFile_Handler)
{
খরচ << 'ফাইল খোলা হয়নি!';
প্রস্থান(ঘ);
}
// empObj_W শুরু করুন
empObj_W।emp_id = 1512;
// ফাইলে লিখুন
binOutFile_Handler।লিখুন((গৃহস্থালি *) &empObj_W,আকার(কর্মচারী));
binOutFile_Handler।বন্ধ();
যদি(!binOutFile_Handler।ভাল())
{
খরচ << 'বাইনারি ফাইল লেখার সময় ত্রুটি ঘটেছে!' <<endl;
প্রস্থান(2);
}
// এখন, কর্মচারী.ড্যাট ফাইলটি পড়ুন
binInFile_Handler।খোলা('কর্মচারী তারিখ', আইওএস::ভিতরে |আইওএস::বাইনারি);
// ফাইলটি খোলা আছে কিনা তা পরীক্ষা করুন
যদি(!binInFile_Handler)
{
খরচ << 'ফাইল খোলা হয়নি!';
প্রস্থান(3);
}
// বাইনারি ফাইলের বিষয়বস্তু পড়ুন
binInFile_Handler।পড়ুন((গৃহস্থালি *) &empObj_R,আকার(কর্মচারী));
binInFile_Handler।বন্ধ();
যদি(!binInFile_Handler।ভাল())
{
খরচ << 'বাইনারি ফাইল পড়ার সময় ত্রুটি ঘটেছে!' <<endl;
প্রস্থান(4);
}
// empObj_R এর আউটপুট প্রিন্ট করুন
খরচ << 'কর্মচারীর বিবরণ:' <<endl;
খরচ << 'কর্মচারী আইডি : ' <<empObj_R।emp_id <<endl;
প্রত্যাবর্তন 0;
}
উপসংহার
ফাইলগুলি মূলত ডেটা সঞ্চয় করতে ব্যবহৃত হয় এবং এগুলি বাস্তব-বিশ্বের প্রোগ্রামিংয়ে গুরুত্বপূর্ণ ভূমিকা পালন করে। এই নিবন্ধে, আমরা আপনাকে দেখিয়েছি কিভাবে বিভিন্ন উদাহরণের মাধ্যমে কাজ করে C ++ প্রোগ্রামিং ভাষার সাথে বিভিন্ন ফাইল অপারেশন ব্যবহার করতে হয়। তদুপরি, আমরা আপনাকে দেখিয়েছি কীভাবে পাঠ্য ফাইল এবং বাইনারি ফাইলগুলিতে ডেটা পড়তে এবং লিখতে হয়।