Forwarded from اللجنة العلمية CS 22 (Ayham Alakhlly)
c++-multiple-choice-questions-answers.pdf
136.5 KB
Forwarded from اللجنة العلمية CS 22 (Ayham Alakhlly)
c++-functions-quiz-questions.pdf
96.7 KB
Forwarded from اللجنة العلمية CS 22 (Ayham Alakhlly)
c++-questions-and-answers.pdf
134.3 KB
Forwarded from اللجنة العلمية CS 22 (Ayham Alakhlly)
c++-quiz-questions-answers.pdf
134.6 KB
Forwarded from اللجنة العلمية CS 22 (Ahmed Alkhateeb)
Test_to_solve.pdf
7.9 MB
Forwarded from اللجنة العلمية CS 22 (حسام⚜🖤)
C++Malik answer.pdf
217.9 KB
حل كتاب Malik للذي طلبوه
#Prog
#Prog
Forwarded from اللجنة العلمية CS 22 (AEK)
نموذج برمجة(2) نهائي - علوم حاسوب.pdf
245 KB
Forwarded from 🔰اللجنة العلمية 2 CYS جامعة صنعاء🔰 (Abdulrahman Khawaja)
YouTube
#27 [c++] - Function part 10 (Inline Function)
كورس البرمجة للمبتدئين باستخدام لغة سي بلس بلس:
الدّالّة (10) - الدوال المضمنة Inline Function
Course C++ in Arabic:
Function part 10 (Inline Function)
--
Material: https://adelnasim.com/docs/courses/cpp-tutorial/function-part-10-inline-function
المادة:…
الدّالّة (10) - الدوال المضمنة Inline Function
Course C++ in Arabic:
Function part 10 (Inline Function)
--
Material: https://adelnasim.com/docs/courses/cpp-tutorial/function-part-10-inline-function
المادة:…
Forwarded from 🔰اللجنة العلمية 2 CYS جامعة صنعاء🔰 (Abdulrahman Khawaja)
YouTube
26 Function part 9 (Default arguments)
كورس البرمجة للمبتدئين باستخدام لغة سي بلس بلس:
الدّالّة (9) - القيم الافتراضية Default arguments
Course C++ in Arabic:
Function part 9 (Default arguments)
--
Material: https://adelnasim.com/docs/courses/cpp-tutorial/function-part-9-default-arguments…
الدّالّة (9) - القيم الافتراضية Default arguments
Course C++ in Arabic:
Function part 9 (Default arguments)
--
Material: https://adelnasim.com/docs/courses/cpp-tutorial/function-part-9-default-arguments…
Forwarded from 🔰اللجنة العلمية 2 CYS جامعة صنعاء🔰 (Abdulrahman Khawaja)
YouTube
#25 [c++] - Function part 8 (Overloading Function)
كورس البرمجة للمبتدئين باستخدام لغة سي بلس بلس:
الدّالّة (8) - Overloading Function - التحميل الزائد.
Course C++ in Arabic:
Function part 8 (Overloading Function)
--
Material: https://adelnasim.com/docs/courses/cpp-tutorial/function-part-8-overloading…
الدّالّة (8) - Overloading Function - التحميل الزائد.
Course C++ in Arabic:
Function part 8 (Overloading Function)
--
Material: https://adelnasim.com/docs/courses/cpp-tutorial/function-part-8-overloading…
Forwarded from 🔰اللجنة العلمية 2 CYS جامعة صنعاء🔰 (Abdulrahman Khawaja)
YouTube
Data Structure 1 (21) || Function Template
: لمتابعة مستجداتنا ونشاطتنا لا تنسى الانضمام إلى جروبنا على الفيس بوك
https://www.facebook.com/groups/862560740513577
: يمكنكم أيضاً متابعتنا على انستغرام
https://www.instagram.com/smartteamju/
رابط صفحة الفريق على الفيس بوك :
https://m.facebook.c…
https://www.facebook.com/groups/862560740513577
: يمكنكم أيضاً متابعتنا على انستغرام
https://www.instagram.com/smartteamju/
رابط صفحة الفريق على الفيس بوك :
https://m.facebook.c…
Forwarded from 🔰اللجنة العلمية 2 CYS جامعة صنعاء🔰 (Abdulrahman Khawaja)
YouTube
Recursion C++ | تعلم الدوال بلغه سي بلس بلس الحلقة 9
فى الفيديو هنكمل تعلم الدوال بلغهC++
وهنتعلم فى الفيديو دة التكراريه او recursion
كورس المستوى الاول وهتلاقى فيه فيديوهات المصفوفات والمؤشرات من اول فيديو 28
https://www.youtube.com/watch?v=HdhDk...
كورس المستوى التانى لتعلم لغه سي بلس بلس
https://ww…
وهنتعلم فى الفيديو دة التكراريه او recursion
كورس المستوى الاول وهتلاقى فيه فيديوهات المصفوفات والمؤشرات من اول فيديو 28
https://www.youtube.com/watch?v=HdhDk...
كورس المستوى التانى لتعلم لغه سي بلس بلس
https://ww…
Forwarded from 🔰اللجنة العلمية 2 CYS جامعة صنعاء🔰 (Abdulrahman Khawaja)
YouTube
#28 [c++] - Static variable
كورس البرمجة للمبتدئين باستخدام لغة سي بلس بلس:
المتغير الساكن - Static variable
Course C++ in Arabic:
Static variable
--
Material: https://adelnasim.com/docs/courses/cpp-tutorial/static-variable
المادة: https://adelnasim.com/ar/docs/courses/cpp-tutorial/static…
المتغير الساكن - Static variable
Course C++ in Arabic:
Static variable
--
Material: https://adelnasim.com/docs/courses/cpp-tutorial/static-variable
المادة: https://adelnasim.com/ar/docs/courses/cpp-tutorial/static…
Forwarded from 🔰اللجنة_العلمية_للامن_السيبراني_2 🔰 (Ă฿ГĂГ sĂ₥Ϊ ⛓️🖇️😴)
⭕️⭕️
ملخص لبعض الدوال 👇
ملخص لبعض الدوال 👇
Forwarded from 🔰اللجنة_العلمية_للامن_السيبراني_2 🔰 (Ă฿ГĂГ sĂ₥Ϊ ⛓️🖇️😴)
1 abs(x)
ترجع القيمة المطلقة ( Absoulte Value ) للعدد الذي نمرره لها مكان البارامتير x
2 ceil(x)
ترجع العدد الصحيح الأكبر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x
3 cos(x)
ترجع قيمة جيب التمام ( Cosine ) للعدد الذي نمرره لها مكان الباراميتر x.
4 exp(x)
ترجع قيمة ex, أي قيمة المتسارع ( Exponential ) للعدد الذي نمرره لها مكان الباراميتر x
5 exp(x)
ترجع قيمة ex, أي قيمة المتسارع ( Exponential ) للعدد الذي نمرره لها مكان الباراميتر x.
6 floor(x)
ترجع العدد الصحيح الأصغر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x
7 rint(x)
ترجع أقرب عدد صحيح للعدد الذي نمرره لها مكان الباراميتر x.
8 fmax(x, y)
ترجع العدد الأكبر بين العددين اللذين نمررهما لها مكان الباراميترين x و y.
9 fmin(x, y)
ترجع العدد الأصغر بين العددين اللذين نمررهما لها مكان الباراميترين x و y
10 fmod(x, y)
ترجع الرقم الذي يتبقى من قسمة قيمة البارامتير x على قيمة البارامتير y.
11 pow(x, y)
تضاعف قيمة الباراميتر x بقيمة الباراميتر y ثم ترجع الناتج
12 sqrt(x)
ترجع قيمة الجزر التربيعي (Square Root) للعدد الذي نمرره لها مكان الباراميتر x
13 cbrt(x)
ترجع قيمة الجزر التكعيبي ( Cube Root ) للعدد الذي نمرره لها مكان الباراميتر x.
14 log(x)
ترجع قيمة loge(x), أي قيمة اللوغاريتم ( Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.
15 log2(x)
ترجع قيمة log2(x), أي قيمة اللوغاريتم الثنائي ( Binary Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.
16 log10(x)
ترجع قيمة log10(x), أي قيمة اللوغاريتم العشري ( Decimal Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.
ترجع القيمة المطلقة ( Absoulte Value ) للعدد الذي نمرره لها مكان البارامتير x
2 ceil(x)
ترجع العدد الصحيح الأكبر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x
3 cos(x)
ترجع قيمة جيب التمام ( Cosine ) للعدد الذي نمرره لها مكان الباراميتر x.
4 exp(x)
ترجع قيمة ex, أي قيمة المتسارع ( Exponential ) للعدد الذي نمرره لها مكان الباراميتر x
5 exp(x)
ترجع قيمة ex, أي قيمة المتسارع ( Exponential ) للعدد الذي نمرره لها مكان الباراميتر x.
6 floor(x)
ترجع العدد الصحيح الأصغر أو الذي يساوي العدد الذي نمرره لها مكان الباراميتر x
7 rint(x)
ترجع أقرب عدد صحيح للعدد الذي نمرره لها مكان الباراميتر x.
8 fmax(x, y)
ترجع العدد الأكبر بين العددين اللذين نمررهما لها مكان الباراميترين x و y.
9 fmin(x, y)
ترجع العدد الأصغر بين العددين اللذين نمررهما لها مكان الباراميترين x و y
10 fmod(x, y)
ترجع الرقم الذي يتبقى من قسمة قيمة البارامتير x على قيمة البارامتير y.
11 pow(x, y)
تضاعف قيمة الباراميتر x بقيمة الباراميتر y ثم ترجع الناتج
12 sqrt(x)
ترجع قيمة الجزر التربيعي (Square Root) للعدد الذي نمرره لها مكان الباراميتر x
13 cbrt(x)
ترجع قيمة الجزر التكعيبي ( Cube Root ) للعدد الذي نمرره لها مكان الباراميتر x.
14 log(x)
ترجع قيمة loge(x), أي قيمة اللوغاريتم ( Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.
15 log2(x)
ترجع قيمة log2(x), أي قيمة اللوغاريتم الثنائي ( Binary Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.
16 log10(x)
ترجع قيمة log10(x), أي قيمة اللوغاريتم العشري ( Decimal Logarithm ) للعدد الذي نمرره لها مكان الباراميتر x.
Forwarded from 🔰اللجنة_العلمية_للامن_السيبراني_2 🔰 (Ă฿ГĂГ sĂ₥Ϊ ⛓️🖇️😴)
الدوال الخاصة للتعامل مع النصوص
1 int length()
ترجع رقم يمثل عدد أحرف النص الذي قام باستدعائها.
للدقة, فإن الرقم الذي ترجعه يمثل من كم Byte يتألف النص.
2 int size()
ترجع رقم يمثل عدد أحرف النص الذي قام باستدعائها تماماً مثل الدالة length().
3 string substr(int pos=0, int len = npos)
ترجع نص عبارة عن جزء من النص (Substring) الذي قام باستدعائها.
مكان الباراميتر pos نمرر index الحرف الذي نريد البدء بنسخ النص من عنده.
مكان الباراميتر len يمكنك تمرير رقم يمثل كم حرف تريد أن تنسخ من عند index الباراميتر pos إن لم ترد نسخ كل النص الموجود.
4 int find(string str)
تبحث في النص الذي قام بإستدعائها عن أول index يوجد إبتداءاَ من عنده نفس النص الذي نمرره لها مكان الباراميتر str و ترجعه.
5 int rfind(string str)
تبحث في النص الذي قام بإستدعائها عن آخر index يوجد إبتداءاَ من عنده نفس النص الذي نمرره لها مكان الباراميتر str و ترجعه.
6 string replace(int pos, int len, string replacement)
تستخدم لتعديل جزء محدد من النص الذي قام باستدعائها.
مكان الباراميتر pos نمرر index الحرف الذي نريد البدء بتغيير النص من عنده.
مكان الباراميتر len نمرر رقم يمثل كم حرف تريد أن تبدل إعتباراً من عند index الباراميتر pos.
مكان الباراميتر replacement نمرر النص الذي سيتم إضافته مكان الجزئية التي سيتم حذفها.
7 void swap(string str)
تبدل محتوى النص الذي قام بإستدعائها بمحتوى النص الذي نمرره مكان الباراميتر str.
كما أنها تبدل محتوى المتغير الذي نمرره مكان الباراميتر str بمحتوى النص الذي قام باستدعائها
8 string append (const string str)
تضيف قيمة النص الذي نمرره مكان الباراميتر str في آخر النص الذي قام باستدعائها و ترجع النص الناتج عند دمجهمها معاً.
9 bool empty()
ترجع true إذا كان النص الذي قام باستدعائها فارغ (أي لا يوجد فيه أي حرف).
و ترجع false إن لم يكن كذلك.
10 void clear()
تمسح كل الأحرف الموجودة في النص الذي قام باستدعائها.
11 int compare (const string str)تقارن حجم النص الذي قام باستدعائها مع حجم النص الذي نمرره لها مكان الباراميتر str.
ترجع 0 في حال كان حجمهم متساوي.
ترجع 1 في حال كان عدد أحرف النص الذي قام باستدعائها أكبر.
ترجع -1 في حال كان عدد أحرف النص الذي قام باستدعائها أصغر.
12 string insert (int pos, const string str)
تضيف قيمة النص الذي نمرره مكان الباراميتر str في النص الذي قام باستدعائها عند Index الخانة التي نحددها مكان الباراميتر pos و ترجع النص الناتج عند دمجهمها معاً.
1 int length()
ترجع رقم يمثل عدد أحرف النص الذي قام باستدعائها.
للدقة, فإن الرقم الذي ترجعه يمثل من كم Byte يتألف النص.
2 int size()
ترجع رقم يمثل عدد أحرف النص الذي قام باستدعائها تماماً مثل الدالة length().
3 string substr(int pos=0, int len = npos)
ترجع نص عبارة عن جزء من النص (Substring) الذي قام باستدعائها.
مكان الباراميتر pos نمرر index الحرف الذي نريد البدء بنسخ النص من عنده.
مكان الباراميتر len يمكنك تمرير رقم يمثل كم حرف تريد أن تنسخ من عند index الباراميتر pos إن لم ترد نسخ كل النص الموجود.
4 int find(string str)
تبحث في النص الذي قام بإستدعائها عن أول index يوجد إبتداءاَ من عنده نفس النص الذي نمرره لها مكان الباراميتر str و ترجعه.
5 int rfind(string str)
تبحث في النص الذي قام بإستدعائها عن آخر index يوجد إبتداءاَ من عنده نفس النص الذي نمرره لها مكان الباراميتر str و ترجعه.
6 string replace(int pos, int len, string replacement)
تستخدم لتعديل جزء محدد من النص الذي قام باستدعائها.
مكان الباراميتر pos نمرر index الحرف الذي نريد البدء بتغيير النص من عنده.
مكان الباراميتر len نمرر رقم يمثل كم حرف تريد أن تبدل إعتباراً من عند index الباراميتر pos.
مكان الباراميتر replacement نمرر النص الذي سيتم إضافته مكان الجزئية التي سيتم حذفها.
7 void swap(string str)
تبدل محتوى النص الذي قام بإستدعائها بمحتوى النص الذي نمرره مكان الباراميتر str.
كما أنها تبدل محتوى المتغير الذي نمرره مكان الباراميتر str بمحتوى النص الذي قام باستدعائها
8 string append (const string str)
تضيف قيمة النص الذي نمرره مكان الباراميتر str في آخر النص الذي قام باستدعائها و ترجع النص الناتج عند دمجهمها معاً.
9 bool empty()
ترجع true إذا كان النص الذي قام باستدعائها فارغ (أي لا يوجد فيه أي حرف).
و ترجع false إن لم يكن كذلك.
10 void clear()
تمسح كل الأحرف الموجودة في النص الذي قام باستدعائها.
11 int compare (const string str)تقارن حجم النص الذي قام باستدعائها مع حجم النص الذي نمرره لها مكان الباراميتر str.
ترجع 0 في حال كان حجمهم متساوي.
ترجع 1 في حال كان عدد أحرف النص الذي قام باستدعائها أكبر.
ترجع -1 في حال كان عدد أحرف النص الذي قام باستدعائها أصغر.
12 string insert (int pos, const string str)
تضيف قيمة النص الذي نمرره مكان الباراميتر str في النص الذي قام باستدعائها عند Index الخانة التي نحددها مكان الباراميتر pos و ترجع النص الناتج عند دمجهمها معاً.
Forwarded from 🔰اللجنة_العلمية_للامن_السيبراني_2 🔰 (Abrar sami 🤍✨)
معالجة الملفات
التعامل مع الملفات أو معالجة الملفات ( Files Handling ) يقصد منها إجراء عملية ما على الملفات الموجودة في حاسوب المستخدم كقراءة محتوى ملف و عرضه في البرنامج, إنشاء نسخة منه, تعديل محتواه أو حذفه, سواء كان نوع الملف txt, jpg, mp4 أو أي نوع آخر.
الآن, للتعامل مع الملفات يجب تضمين الحزمة <fstream> لأنها تحتوي على الكلاسات المخصصة لذلك, بالإضافة للحزمة <iostream> لأننا سنحتاج منها العامل << عند الكتابة في الملف.
إذاً يجب كتابة هذين السطرين عند التعامل مع الملفات.
#include <iostream>
#include <fstream>
مصطلحات تقنية
إسم الحزمة <fstream> مشتق من جملة File Stream و التي تعني أنها مخصصة للتعامل مع الملفات.
إسم الحزمة <iostream> مشتق من جملة Input Output Stream و التي تعني أنها تحتوي على أوامر الإدخال و الإجراج سواء على الشاشة أو في الملفات.
كلاسات الحزمة fstream
الحزمة <fstream> تحتوي على الكلاسات الأساسية التالية التي يمكن استخدامها للتعامل مع الملفات.
الكلاس مع تعريفه
1
ofstream
يستخدم لإنشاء كائن يتيح لنا إمكانية إنشاء ملف جديد و الكتابة فيه.
2
ifstream
يستخدم لإنشاء كائن يتيح لنا إمكانية قراءة محتوى الملف.
3
fstream
يستخدم لإنشاء كائن يتيح لنا إمكانية إنشاء ملف جديد, الكتابة فيه و القراءة منه أيضاً.
إذاً هذا الكلاس يعتبر دمج للكلاس ofstream و الكلاس ifstream.
طريقة فتح و إغلاق ملف
إذا أردت قراءة محتوى ملف أو الكتابة فيه فلا بد من أن يكون مفتوحاً من قبل برنامجك نفسه حتى تتمكن من ذلك.
الكلاسات الثلاثة ifstream و ofstream و fstream جميعها تحتوي على دالة إسمها open() نستخدمها لنفتح الملف الذي نريد التعامل معه.
بناء الدالة open()
void open(const char *filename, ios::openmode mode)
مكان الباراميتر filename نمرر إسم و مسار الملف الذي نريد فتحه كنص عادي.
mode هو باراميتر إختياري يمكننا أن نمرر مكانه ثابت أو أكثر من الثوابت الجاهزة في الكلاس ios حتى نحدد للمترجم لماذا نريد فتح الملف.
في الجدول التالي وضعنا أسماء ثوابت الكلاس ios التي يمكنك تمريرها مكان البارميتر mode.
الثابت مع تعريفه
1
ios::app
يستخدم لإعلام المترجم بأن المحتوى الجديد الذي سيتم إضافته سيوضع في آخر الملف.
2
ios::ate
يستخدم لإعلام المترجم بأن سيتم فتح الملف بهدف الكتابة و القراءة منه مع الإشارة إلى أنه سيبدأ من آخره.
3
ios::in
يستخدم لإعلام المترجم بأنه سيتم فتح الملف بهدف القراءة منه.
4
ios::out
يستخدم لإعلام المترجم بأنه سيتم فتح الملف بهدف الكتابة فيه.
5
ios::trunc
يستخدم لإعلام المترجم بأنه في حال كان الملف موجود مسبقاً, سيتم مسح محتواه عند فتحه.
عند استدعاء الدالة open() يمكنك استخدام العامل | في حال أردت أن تمرر لها أكثر من قيمة مكان البارميتر mode كالتالي.
ofstream myfile;
myfile.open ("example.txt", ios::out | ios::app);
معلومة تقنية
الكلاس ofstream يستخدم الثابت ios::out بشكل إفتراضي.
الكلاس ifstream يستخدم الثابت ios::in بشكل إفتراضي.
الكلاس fstream لا يستخدم أي ثابت بشكل إفتراضي.
أهمية إغلاق الملف عند الإنتهاء منه
عند الإنتهاء من التعامل مع أي ملف, قم بإغلاقه على الفور لأن ذلك من شأنه تحسين أداء البرنامج حيث سيخفف من حجم المساحة المحجوزة للملف في الذاكرة بالإضافة إلى أنك تصبح قادر على التعامل مع هذا الملف بشكل مباشر من خارج برنامجك.
الكلاسات الثلاثة ifstream و ofstream و fstream جميعها تحتوي على دالة إسمها close() نستخدمها لإغلاق الملف.
إذاً لإغلاق الإتصال مع أي ملف مفتوح, يجب أن تستدعي الدالة close() من الكائن الذي بالأساس فتحت الملف من خلاله.
التشييك على حالة الكائن الذي نتعامل من خلاله مع الملف
عند استخدام الدالة open() لفتح الملف سواء بهدف القراءة أو الكتابة فيه فإن ذلك قد لا ينجح دائماً.
فمثلاً إذا كنت تريد إنشاء ملف جديد, قد تكون لا تملك صلاحية لإنشاء ملف في الحاسوب أو لا يوجد مساحة كافية لإنشاء الملف فيها, أو أن الملف موجود أصلاً و لكنه مفتوح من قبل برنامج آخر. و في حال كنت تريد قراءة محتوى ملف موجود في الحاسوب قد تواجه أيضاً بعض المشاكل, كأن يكون مسار الملف الموضوع غير صحيح, أو أن الملف مفتوح من قبل برنامج آخر أو أنك لا تملك صلاحية للقراءة منه إلخ..
بعد إنشاء الكائن الذي ستتعامل من خلاله مع الملف, يمكنك استخدام الجمل الشرطية if و else بكل سهولة كالتالي لمعرفة ما إن كان يمكنك التعامل مع الملف أم لا.
ofstream myfile;
myfile.open ("example.txt");
if (myfile)
{
// إذا كان الإتصال بالملف لا يوجد فيه مشاكل, سيتم تنفيذ الأوامر التي نضعها هنا
}
else
{
// إذا أردت إعلام المستخدم بأنه حدث مشكلة أثناء الإتصال بالملف, فيمكنك كتابة ذلك هنا
}
التعامل مع الملفات أو معالجة الملفات ( Files Handling ) يقصد منها إجراء عملية ما على الملفات الموجودة في حاسوب المستخدم كقراءة محتوى ملف و عرضه في البرنامج, إنشاء نسخة منه, تعديل محتواه أو حذفه, سواء كان نوع الملف txt, jpg, mp4 أو أي نوع آخر.
الآن, للتعامل مع الملفات يجب تضمين الحزمة <fstream> لأنها تحتوي على الكلاسات المخصصة لذلك, بالإضافة للحزمة <iostream> لأننا سنحتاج منها العامل << عند الكتابة في الملف.
إذاً يجب كتابة هذين السطرين عند التعامل مع الملفات.
#include <iostream>
#include <fstream>
مصطلحات تقنية
إسم الحزمة <fstream> مشتق من جملة File Stream و التي تعني أنها مخصصة للتعامل مع الملفات.
إسم الحزمة <iostream> مشتق من جملة Input Output Stream و التي تعني أنها تحتوي على أوامر الإدخال و الإجراج سواء على الشاشة أو في الملفات.
كلاسات الحزمة fstream
الحزمة <fstream> تحتوي على الكلاسات الأساسية التالية التي يمكن استخدامها للتعامل مع الملفات.
الكلاس مع تعريفه
1
ofstream
يستخدم لإنشاء كائن يتيح لنا إمكانية إنشاء ملف جديد و الكتابة فيه.
2
ifstream
يستخدم لإنشاء كائن يتيح لنا إمكانية قراءة محتوى الملف.
3
fstream
يستخدم لإنشاء كائن يتيح لنا إمكانية إنشاء ملف جديد, الكتابة فيه و القراءة منه أيضاً.
إذاً هذا الكلاس يعتبر دمج للكلاس ofstream و الكلاس ifstream.
طريقة فتح و إغلاق ملف
إذا أردت قراءة محتوى ملف أو الكتابة فيه فلا بد من أن يكون مفتوحاً من قبل برنامجك نفسه حتى تتمكن من ذلك.
الكلاسات الثلاثة ifstream و ofstream و fstream جميعها تحتوي على دالة إسمها open() نستخدمها لنفتح الملف الذي نريد التعامل معه.
بناء الدالة open()
void open(const char *filename, ios::openmode mode)
مكان الباراميتر filename نمرر إسم و مسار الملف الذي نريد فتحه كنص عادي.
mode هو باراميتر إختياري يمكننا أن نمرر مكانه ثابت أو أكثر من الثوابت الجاهزة في الكلاس ios حتى نحدد للمترجم لماذا نريد فتح الملف.
في الجدول التالي وضعنا أسماء ثوابت الكلاس ios التي يمكنك تمريرها مكان البارميتر mode.
الثابت مع تعريفه
1
ios::app
يستخدم لإعلام المترجم بأن المحتوى الجديد الذي سيتم إضافته سيوضع في آخر الملف.
2
ios::ate
يستخدم لإعلام المترجم بأن سيتم فتح الملف بهدف الكتابة و القراءة منه مع الإشارة إلى أنه سيبدأ من آخره.
3
ios::in
يستخدم لإعلام المترجم بأنه سيتم فتح الملف بهدف القراءة منه.
4
ios::out
يستخدم لإعلام المترجم بأنه سيتم فتح الملف بهدف الكتابة فيه.
5
ios::trunc
يستخدم لإعلام المترجم بأنه في حال كان الملف موجود مسبقاً, سيتم مسح محتواه عند فتحه.
عند استدعاء الدالة open() يمكنك استخدام العامل | في حال أردت أن تمرر لها أكثر من قيمة مكان البارميتر mode كالتالي.
ofstream myfile;
myfile.open ("example.txt", ios::out | ios::app);
معلومة تقنية
الكلاس ofstream يستخدم الثابت ios::out بشكل إفتراضي.
الكلاس ifstream يستخدم الثابت ios::in بشكل إفتراضي.
الكلاس fstream لا يستخدم أي ثابت بشكل إفتراضي.
أهمية إغلاق الملف عند الإنتهاء منه
عند الإنتهاء من التعامل مع أي ملف, قم بإغلاقه على الفور لأن ذلك من شأنه تحسين أداء البرنامج حيث سيخفف من حجم المساحة المحجوزة للملف في الذاكرة بالإضافة إلى أنك تصبح قادر على التعامل مع هذا الملف بشكل مباشر من خارج برنامجك.
الكلاسات الثلاثة ifstream و ofstream و fstream جميعها تحتوي على دالة إسمها close() نستخدمها لإغلاق الملف.
إذاً لإغلاق الإتصال مع أي ملف مفتوح, يجب أن تستدعي الدالة close() من الكائن الذي بالأساس فتحت الملف من خلاله.
التشييك على حالة الكائن الذي نتعامل من خلاله مع الملف
عند استخدام الدالة open() لفتح الملف سواء بهدف القراءة أو الكتابة فيه فإن ذلك قد لا ينجح دائماً.
فمثلاً إذا كنت تريد إنشاء ملف جديد, قد تكون لا تملك صلاحية لإنشاء ملف في الحاسوب أو لا يوجد مساحة كافية لإنشاء الملف فيها, أو أن الملف موجود أصلاً و لكنه مفتوح من قبل برنامج آخر. و في حال كنت تريد قراءة محتوى ملف موجود في الحاسوب قد تواجه أيضاً بعض المشاكل, كأن يكون مسار الملف الموضوع غير صحيح, أو أن الملف مفتوح من قبل برنامج آخر أو أنك لا تملك صلاحية للقراءة منه إلخ..
بعد إنشاء الكائن الذي ستتعامل من خلاله مع الملف, يمكنك استخدام الجمل الشرطية if و else بكل سهولة كالتالي لمعرفة ما إن كان يمكنك التعامل مع الملف أم لا.
ofstream myfile;
myfile.open ("example.txt");
if (myfile)
{
// إذا كان الإتصال بالملف لا يوجد فيه مشاكل, سيتم تنفيذ الأوامر التي نضعها هنا
}
else
{
// إذا أردت إعلام المستخدم بأنه حدث مشكلة أثناء الإتصال بالملف, فيمكنك كتابة ذلك هنا
}
موقع هرمش
التعامل مع الملفات في ++C
التعامل مع الملفات أو معالجة الملفات (Files Handling) يقصد منها إجراء عملية ما على الملفات الموجودة في حاسوب المستخدم كقراءة محتوى ملف و عرضه في البرنامج, إنشاء نسخة منه, تعديل محتواه أو حذفه, سواء كان نوع الملف txt, jpg, mp4 أو أي نوع آخر.
Forwarded from 🔰اللجنة_العلمية_للامن_السيبراني_2 🔰 (Abrar sami 🤍✨)
هناك 4 دوال جاهزة يمكنك استخدامها للتأكد من أن الإتصال بالملف سليم و أنه لم تحدث أي مشكلة عند التعامل معه سواء عند القراءة أو الكتابة فيه.
إسم الدالة مع تعريفها
1
bool bad()
تستخدم لمعرفة ما إن حصلت أي مشكلة عند القراءة أو الكتابة في الملف.
ترجع true إذا حدثت مشكلة و ترجع false إذا لم تحدث أي مشكلة.
من المشاكل التي نقصدها كأن تحاول الكتابة في الملف و لكنه لا يوجد مساحة كافية للتخزين, أو في حال فتحت ملف بواسطة كائن من ofstream و لكنك كنت تنوي استخدامه للقراءة و ليس للكتابة. في هذه الحالات يمكنك الإستفادة من هذه الدالة لمعرفة ما إن حدث خطأ أم لا.
2
bool fail()
مثل الدالة bad() تماماً بالإضافة إلى أنها تشيك على المشاكل التي قد تحدث عند التعامل مع محتوى الملف.
على سبيل المثال, إذا قمت بقراءة عدد مخزن في الملف و قمت بقراءته في برنامجك و من ثم التعامل معه كأنه عدد عادي بدون أن تحوله لعدد ستجد أنها تنبهك عن هذا الخطأ أيضاً.
ترجع true إذا حدثت مشكلة و ترجع false إذا لم تحدث أي مشكلة.
3
bool eof()
إسم الدالة هو اختصار لجملة End Of File و هي تستخدم لمعرفة ما إن وصلت في القراءة أو الكتابة إلى آخر الملف أم لا.
ترجع true إذا كان المترجم وصل لنهاية الملف و ترجع false إذا يصل بعد لنهايته.
4
bool good()
تستخدم لمعرفة ما إن حصلت أي مشكلة كانت عند التعامل مع الملف و هي تشمل كل أنواع المشاكل التي قد تحدث.
ترجع true إذا لم تحدث أي مشكلة و ترجع false إذا حدثت مشكلة ما.
كل ماتم ذكره مأخوذ من هذا الموقع :
https://harmash.com/tutorials/cplusplus/files
إسم الدالة مع تعريفها
1
bool bad()
تستخدم لمعرفة ما إن حصلت أي مشكلة عند القراءة أو الكتابة في الملف.
ترجع true إذا حدثت مشكلة و ترجع false إذا لم تحدث أي مشكلة.
من المشاكل التي نقصدها كأن تحاول الكتابة في الملف و لكنه لا يوجد مساحة كافية للتخزين, أو في حال فتحت ملف بواسطة كائن من ofstream و لكنك كنت تنوي استخدامه للقراءة و ليس للكتابة. في هذه الحالات يمكنك الإستفادة من هذه الدالة لمعرفة ما إن حدث خطأ أم لا.
2
bool fail()
مثل الدالة bad() تماماً بالإضافة إلى أنها تشيك على المشاكل التي قد تحدث عند التعامل مع محتوى الملف.
على سبيل المثال, إذا قمت بقراءة عدد مخزن في الملف و قمت بقراءته في برنامجك و من ثم التعامل معه كأنه عدد عادي بدون أن تحوله لعدد ستجد أنها تنبهك عن هذا الخطأ أيضاً.
ترجع true إذا حدثت مشكلة و ترجع false إذا لم تحدث أي مشكلة.
3
bool eof()
إسم الدالة هو اختصار لجملة End Of File و هي تستخدم لمعرفة ما إن وصلت في القراءة أو الكتابة إلى آخر الملف أم لا.
ترجع true إذا كان المترجم وصل لنهاية الملف و ترجع false إذا يصل بعد لنهايته.
4
bool good()
تستخدم لمعرفة ما إن حصلت أي مشكلة كانت عند التعامل مع الملف و هي تشمل كل أنواع المشاكل التي قد تحدث.
ترجع true إذا لم تحدث أي مشكلة و ترجع false إذا حدثت مشكلة ما.
كل ماتم ذكره مأخوذ من هذا الموقع :
https://harmash.com/tutorials/cplusplus/files
موقع هرمش
التعامل مع الملفات في ++C
التعامل مع الملفات أو معالجة الملفات (Files Handling) يقصد منها إجراء عملية ما على الملفات الموجودة في حاسوب المستخدم كقراءة محتوى ملف و عرضه في البرنامج, إنشاء نسخة منه, تعديل محتواه أو حذفه, سواء كان نوع الملف txt, jpg, mp4 أو أي نوع آخر.
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
Forwarded from 🔰نماذج وملخصات IS مستوى ثالث🔰 (حسن الكُتف <HI/X>)
المذاكرين الان عادنا بدات اذاكر ومن ما فهمنا من كلام الدكتور موسى ان في اكواد طويلة وحاجات فهم /* يعني يشتي يبسر من فاهم */
شا اسوي اسئلة عميقة صح وتحتاج تتبع هانا مش في MCQ واشرحها وشا ادمج فيها القدر اللي اقدر من اللي درسنا
شا اسوي اسئلة عميقة صح وتحتاج تتبع هانا مش في MCQ واشرحها وشا ادمج فيها القدر اللي اقدر من اللي درسنا