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

C++التشييك على حالة الكائن المستخدم للتعامل مع الملف

في المثال التالي قمنا بإنشاء كائن من الكلاس ifstream و من ثم حاولنا استخدامه لقراءة محتوى ملف إسمه harmash.txt.
بعدها قمنا بالتشييك على حالة الكائن لمعرفة ما إن حدثت مشكلة عند التعامل مع الملف أم لا.
إذاً هنا قد تحدث مشكلة في حال لم يكن هناك ملف في المشروع إسمه harmash.txt.

مثال

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

using namespace std;

int main()
{
    // لأننا سنستخدمه لقراءة محتوى ملف موجود في الحاسوب infile إسمه ifstream هنا قمنا بإنشاء كائن من الكلاس
    ifstream infile;

    // مع العلم أنه لا يوجد ملف بهذا الإسم في المشروع "harmash.txt" لفتح ملف إسمه open() هنا قمنا باستدعاء الدالة
    infile.open("harmash.txt");

    // هنا سيتم طباعة ما إن كنا قد فتحنا الملف و قرأنا الأحرف الموجودة فيه وصولاً لآخر حرف أم لا
    if (infile.eof())
    {
        cout << "You reach the end of file.\n";
    }
    else
    {
        cout << "You didn't reach the end of file.\n";
    }

    // هنا سيتم طباعة أي مشكلة حدثت عند محاولة التعامل مع الملف
    if (infile.good())
    {
        cout << "No problem happend till now.";
    }
    else
    {
        // ثم نطقتين فوق بعضهما, ثم سبب الخطأ الذي حدث "Error" سيتم طباعة كلمة
        perror("Error");
    }

    // لإغلاق الإتصال مع الملف في حال كان قد تم فتحه أصلاً infile من الكائن close() هنا قمنا باستدعاء الدالة
    infile.close();

    return 0;
}

سنحصل على النتيجة التالية عند التشغيل.

You didn't reach the end of file.
Error: No such file or directory