التعامل مع ملفات C++: كيفية فتح الملفات وكتابتها وقراءتها وإغلاقها في C++

ما هو التعامل مع الملفات في C++؟

تقوم الملفات بتخزين البيانات بشكل دائم في جهاز تخزين. من خلال معالجة الملفات، يمكن تخزين مخرجات البرنامج في ملف. يمكن إجراء عمليات مختلفة على البيانات أثناء وجودها في الملف.

الدفق هو تجريد لجهاز يتم فيه تنفيذ عمليات الإدخال / الإخراج. يمكنك تمثيل الدفق كوجهة أو مصدر لأحرف ذات طول غير محدد. سيتم تحديد ذلك من خلال استخدامها. توفر لك لغة C++ مكتبة تحتوي على طرق للتعامل مع الملفات. دعونا نناقش ذلك.

مكتبة اف ستريم

توفر مكتبة fstream لمبرمجي C++ ثلاث فئات للعمل مع الملفات. تشمل هذه الفئات:

  • اوفستريم- تمثل هذه الفئة دفق الإخراج. يتم استخدامه لإنشاء الملفات وكتابة المعلومات إلى الملفات.
  • إفستريم- تمثل هذه الفئة دفق الإدخال. يتم استخدامه لقراءة المعلومات من ملفات البيانات.
  • com.fstream- تمثل هذه الفئة بشكل عام دفق الملفات. لأنه يأتي مع قدرات ofstream/ifstream. وهذا يعني أنه قادر على إنشاء الملفات والكتابة إلى الملفات والقراءة من ملفات البيانات.

التاليwing الصورة تجعل من السهل أن نفهم:

مكتبة fstream
مكتبة fstream

لاستخدام الفئات المذكورة أعلاه من مكتبة fstream، يجب عليك تضمينها في برنامجك كملف رأس. بالطبع، ستستخدم التوجيه #include للمعالج المسبق. يجب عليك أيضًا تضمين ملف رأس iostream.

كيفية فتح الملفات

قبل إجراء أي عملية على ملف، يجب عليك أولاً فتحه. إذا كنت بحاجة إلى الكتابة إلى الملف، فافتحه باستخدام كائنات fstream أو ofstream. إذا كنت تريد القراءة من الملف فقط، فافتحه باستخدام كائن ifstream.

الكائنات الثلاثة، fstream، ofstream، وifstream، لها الدالة open() المحددة فيها. تأخذ الدالة بناء الجملة هذا:

open (file_name, mode);
  • تشير المعلمة file_name إلى اسم الملف المراد فتحه.
  • معلمة الوضع اختيارية. يمكن أن يستغرق أيًا من الخطواتwing القيم:
القيم الوصف
دائرة الرقابة الداخلية :: التطبيق وضع الإلحاق. يتم إلحاق الإخراج المرسل إلى الملف به.
دائرة الرقابة الداخلية::أكلت فهو يفتح الملف للإخراج ثم ينقل عنصر التحكم في القراءة والكتابة إلى نهاية الملف.
دائرة الرقابة الداخلية::في يفتح الملف للقراءة.
دائرة الرقابة الداخلية::خارج يفتح الملف للكتابة.
دائرة الرقابة الداخلية::ترونك في حالة وجود ملف، يجب اقتطاع عناصر الملف قبل فتحه.

من الممكن استخدام وضعين في نفس الوقت. يمكنك دمجها باستخدام | (أو) المشغل.

مثال 1:

#include <iostream>
#include <fstream>
using namespace std;
int main() {
	fstream my_file;
	my_file.open("my_file", ios::out);
	if (!my_file) {
		cout << "File not created!";
	}
	else {
		cout << "File created successfully!";
		my_file.close(); 
	}
	return 0;
}

الإخراج:

الملفات المفتوحة

فيما يلي لقطة شاشة للكود:

الملفات المفتوحة

شرح الكود:

  1. قم بتضمين ملف رأس iostream في البرنامج لاستخدام وظائفه.
  2. قم بتضمين ملف رأس fstream في البرنامج لاستخدام فئاته.
  3. قم بتضمين مساحة الاسم std في الكود الخاص بنا لاستخدام فئاتها دون استدعائها.
  4. استدعاء الدالة الرئيسية (). يجب أن يذهب منطق البرنامج داخل جسمه.
  5. قم بإنشاء كائن من فئة fstream وأعطه الاسم my_file.
  6. قم بتطبيق الدالة open() على الكائن أعلاه لإنشاء ملف جديد. يسمح لنا وضع الخروج بالكتابة في الملف.
  7. استخدم عبارة if للتحقق من فشل إنشاء الملف.
  8. رسالة للطباعة على وحدة التحكم إذا لم يتم إنشاء الملف.
  9. نهاية نص بيان if.
  10. استخدم عبارة else لتوضيح ما يجب فعله إذا تم إنشاء الملف.
  11. رسالة للطباعة على وحدة التحكم إذا تم إنشاء الملف.
  12. قم بتطبيق الدالة Close() على الكائن لإغلاق الملف.
  13. نهاية نص بيان آخر.
  14. يجب أن يُرجع البرنامج قيمة إذا اكتمل بنجاح.
  15. نهاية نص الوظيفة الرئيسية ().

كيفية إغلاق الملفات

مرة برنامج C ++ ينتهي، فإنه تلقائيا

  • يغسل الجداول
  • يحرر الذاكرة المخصصة
  • يغلق الملفات المفتوحة .

ومع ذلك، كمبرمج، يجب أن تتعلم كيفية إغلاق الملفات المفتوحة قبل إنهاء البرنامج.

تحتوي كائنات fstream وofstream وifstream على وظيفة Close() لإغلاق الملفات. تأخذ الدالة بناء الجملة هذا:

void close();

كيفية الكتابة إلى الملفات

يمكنك الكتابة إلى الملف مباشرة من برنامج C++ الخاص بك. يمكنك استخدام عامل تشغيل الدفق (<<) لهذا الغرض. يجب تضمين النص المراد كتابته في الملف بالداخل double-يقتبس.

دعونا نثبت هذا.

مثال 2:

#include <iostream>
#include <fstream>
using namespace std;
int main() {
	fstream my_file;
	my_file.open("my_file.txt", ios::out);
	if (!my_file) {
		cout << "File not created!";
	}
	else {
		cout << "File created successfully!";
		my_file << "Guru99";
		my_file.close();
	}
	return 0;
}

الإخراج:

كيفية الكتابة إلى الملفات

فيما يلي لقطة شاشة للكود:

كيفية الكتابة إلى الملفات

شرح الكود:

  1. قم بتضمين ملف رأس iostream في البرنامج لاستخدام وظائفه.
  2. قم بتضمين ملف رأس fstream في البرنامج لاستخدام فئاته.
  3. قم بتضمين مساحة الاسم std في البرنامج لاستخدام فئاته دون استدعائها.
  4. استدعاء الدالة الرئيسية (). يجب إضافة منطق البرنامج داخل نص هذه الوظيفة.
  5. قم بإنشاء مثيل لفئة fstream وأعطه الاسم my_file.
  6. استخدم الدالة open() لإنشاء ملف جديد باسم my_file.txt. سيتم فتح الملف في وضع الخروج للكتابة فيه.
  7. استخدم عبارة if للتحقق مما إذا كان الملف لم يتم فتحه.
  8. النص المطلوب طباعته على وحدة التحكم إذا لم يتم فتح الملف.
  9. نهاية نص عبارة if.
  10. استخدم عبارة else لتوضيح ما يجب فعله إذا تم إنشاء الملف.
  11. النص المطلوب طباعته على وحدة التحكم إذا تم إنشاء الملف.
  12. اكتب بعض النص إلى الملف الذي تم إنشاؤه.
  13. استخدم الدالة Close() لإغلاق الملف.
  14. نهاية نص بيان آخر.
  15. يجب أن يقوم البرنامج بإرجاع القيمة عند اكتماله بنجاح.
  16. نهاية نص الدالة main().

كيفية القراءة من الملفات

يمكنك قراءة المعلومات من الملفات إلى برنامج C++ الخاص بك. وهذا ممكن باستخدام عامل استخراج الدفق (>>). يمكنك استخدام عامل التشغيل بنفس الطريقة التي تستخدمه بها لقراءة إدخال المستخدم من لوحة المفاتيح. ومع ذلك، بدلاً من استخدام كائن cin، يمكنك استخدام كائن ifstream/ fstream.

مثال 3:

#include <iostream>
#include <fstream>
using namespace std;
int main() {
	fstream my_file;
	my_file.open("my_file.txt", ios::in);
	if (!my_file) {
		cout << "No such file";
	}
	else {
		char ch;

		while (1) {
			my_file >> ch;
			if (my_file.eof())
				break;

			cout << ch;
		}

	}
	my_file.close();
	return 0;
}

الإخراج:

القراءة من الملفات

لايوجد ملف مشابه

فيما يلي لقطة شاشة للكود:

القراءة من الملفات

شرح الكود:

  1. قم بتضمين ملف رأس iostream في البرنامج لاستخدام وظائفه.
  2. قم بتضمين ملف رأس fstream في البرنامج لاستخدام فئاته.
  3. قم بتضمين مساحة الاسم std في البرنامج لاستخدام فئاته دون استدعائها.
  4. استدعاء الدالة الرئيسية (). يجب إضافة منطق البرنامج داخل نص هذه الوظيفة.
  5. قم بإنشاء مثيل لفئة fstream وأعطه الاسم my_file.
  6. استخدم الدالة open() لإنشاء ملف جديد باسم my_file.txt. سيتم فتح الملف في وضع القراءة منه.
  7. استخدم عبارة if للتحقق من عدم وجود الملف.
  8. النص المطلوب طباعته على وحدة التحكم إذا لم يتم العثور على الملف.
  9. نهاية نص عبارة if.
  10. استخدم عبارة else لتوضيح ما يجب فعله إذا تم العثور على الملف.
  11. إنشاء متغير شار اسمه الفصل.
  12. إنشاء حائط اللوب للتكرار على محتويات الملف.
  13. كتابة/تخزين محتويات الملف في المتغير ch.
  14. استخدم الشرط if والدالة eof() التي تمثل نهاية الملف، لضمان استمرار المترجم في القراءة من الملف إذا لم يتم الوصول إلى النهاية.
  15. استخدم عبارة Break لإيقاف القراءة من الملف بمجرد الوصول إلى النهاية.
  16. اطبع محتويات المتغير ch على وحدة التحكم.
  17. نهاية الجسم في حين.
  18. نهاية نص بيان آخر.
  19. قم باستدعاء الدالة Close() لإغلاق الملف.
  20. يجب أن يقوم البرنامج بإرجاع القيمة عند اكتماله بنجاح.
  21. نهاية نص الدالة main().

نبذة عامة

  • من خلال معالجة الملفات، يمكن إرسال مخرجات البرنامج وتخزينها في ملف.
  • ويمكن بعد ذلك تطبيق عدد من العمليات على البيانات أثناء وجودها في الملف.
  • الدفق عبارة عن تجريد يمثل جهازًا يتم فيه تنفيذ عمليات الإدخال / الإخراج.
  • يمكن تمثيل الدفق كوجهة أو مصدر لأحرف ذات طول غير محدد.
  • توفر مكتبة fstream لمبرمجي لغة C++ طرقًا لمعالجة الملفات.
  • لاستخدام المكتبة، يجب عليك تضمينها في برنامجك باستخدام توجيه #include للمعالج المسبق.