Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

C++طريقة إنشاء ملف و الكتابة فيه و من ثم قراءة محتواه و عرضه في البرنامج

في المثال التالي قمنا بإنشاء ملف نصي جديد إسمه demo.txt في نفس المشروع الذي نعمل فيه.
بعدها قمنا بالتأكد من أنه قد تم إنشاء الملف بنجاح و من ثم كتابة سطرين بداخله.
بعدها قمنا بالرجوع لبداية الملف باستخدام الدالة seekg() مع تمرير القيمة 0 لها للإشارة إلى أول حرف موجود في الملف.
بعدها قمنا بقراءة النص الذي أضفناه في الملف منه و عرضه في البرنامج, أي في الكونسول.

ملاحظة: عند التعامل مع الملف بواسطة كائن من الكلاس fstream يجب تمرير الثابت ios::trunc للدالة open() في حال كان الملف الذي سيتم فتحه في الأساس غير موجود و إلا لن تتمكن من إنشاؤه.

مثال

main.cpp
#include <iostream>
#include <fstream>

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.