Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals 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;
}
#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.