C++طريقة إنشاء ملف و الكتابة فيه و من ثم قراءة محتواه و عرضه في البرنامج
في المثال التالي قمنا بإنشاء ملف نصي جديد إسمه demo.txt
في نفس المشروع الذي نعمل فيه.
بعدها قمنا بالتأكد من أنه قد تم إنشاء الملف بنجاح و من ثم كتابة سطرين بداخله.
بعدها قمنا بالرجوع لبداية الملف باستخدام الدالة seekg()
مع تمرير القيمة 0
لها للإشارة إلى أول حرف موجود في الملف.
بعدها قمنا بقراءة النص الذي أضفناه في الملف منه و عرضه في البرنامج, أي في الكونسول.
ملاحظة: عند التعامل مع الملف بواسطة كائن من الكلاس fstream
يجب تمرير الثابت ios::trunc
للدالة open()
في حال كان الملف الذي سيتم فتحه في الأساس غير موجود و إلا لن تتمكن من إنشاؤه.
مثال
using namespace std; int main() { // لأننا سنستخدمه لإنشاء ملف جديد و الكتابة فيه file إسمه fstream هنا قمنا بإنشاء كائن من الكلاس fstream file; // و فتحه "demo.txt" لإنشاء ملف جديد إسمه open() هنا قمنا باستدعاء الدالة file.open("demo.txt", ios::in | ios::out | ios::trunc); // لا يوجد فيه أي مشاكل قبل التعامل معه file هنا قمنا بالتأكد من أن الإتصال بالملف الذي يشير له الكائن if(file) { // file هنا قمنا بإضافة نص في الملف الذي يشير إليه الكائن file << "This is a line.\n"; file << "This is another line.\n"; // هنا قمنا بالرجوع لأول الملف لأننا سنقوم بقراءة محتواه من البداية file.seekg(0); // سنستخدم هذا المتغير لتخزين كل سطر جديد نقوم بجلبه من الملف فيه بشكل مؤقت قبل عرضه string line; // line تجد سطر جديد, ستقوم بوضعه بشكل مؤقت في المتغير getline() طالما أن الدالة while هنا في كل دورة من دورات الحلقة while (getline (file, line)) { // بعدها سنقوم بعرضه و النزول على سطر جديد حتى لا يظهر كل محتوى الملف على سطر واحد cout << line << endl; } } // لإغلاق الإتصال مع الملف المفتوح في الذاكرة file من الكائن close() هنا قمنا باستدعاء الدالة file.close(); return 0; }
عند تشغيل البرنامج سيتم عرض محتوى الملف demo.txt
كالتالي.
This is a line. This is another line.