أمثلة على C++ C

Amthlt Ly C C



عندما يتعين علينا العمل مع برمجة C++، قد نواجه مواقف مختلفة عندما يتعين علينا مواجهة الأخطاء. لذا، لعرض هذا الخطأ، نستخدم الكلمة الأساسية 'cerr' في لغة C++. يمكننا القول أننا نستخدم كائن 'cerr' لطباعة رسالة الخطأ في لغة C++. يحتوي ملف الرأس 'iostream' على إعلان هذا الكائن. يتم استخدامه مع رموز الإدراج '<<' لعرض الخطأ أو التفاصيل التي أدخلناها في وحدة التحكم. سوف نتعلم هذا الكائن 'cerr' جيدًا في هذا الدليل.

مثال 1:

'iostream' هو ملف الرأس المضمن هنا والذي وضعناه حتى نتمكن من استخدام أساليب 'cin' أو 'cout' في الكود الخاص بنا حيث تم الإعلان عن كلا الطريقتين بداخله. تم أيضًا الإعلان عن كائن 'cerr' في ملف الرأس هذا. ثم لدينا 'مساحة الاسم std'. الآن، لا نحتاج إلى إضافة هذا 'std' مع كل دالة بشكل مستقل.

ثم يتم استدعاء 'main()' هنا. أسفل هذا، نستخدم كائن 'cerr' ونضع رسالة الخطأ التي نريد عرضها على وحدة التحكم. نكتب 'حدث خطأ هنا!' رسالة في هذا 'cerr' بعد وضع رموز الإدراج. عندما نقوم بتشغيل هذا البرنامج، يتم عرض الرسالة المحددة دون استخدام 'cout'.







الكود 1:

#تشمل

استخدام اسم للمحطة ;

كثافة العمليات رئيسي ( ) {

cerr << 'حدث خطأ هنا!' << endl ;

يعود 0 ;

}

انتاج:



الرسالة التي نكتبها بعد وضع 'cerr <<' تظهر الآن في هذه النتيجة والتي تظهر بالشكل التالي:







مثال 2:

بما أن كلاً من طريقتي 'cin' و'cout' بالإضافة إلى 'cerr' تم الإعلان عنها داخل ملف الرأس 'iostream'، فإننا نضيف ملف الرأس هنا حتى نتمكن من استخدامها في الكود الخاص بنا. بعد ذلك، لدينا 'مساحة الاسم std'. أسفل هذا، يتم استدعاء 'main()'. نقوم بتهيئة 'error_str[]' لنوع البيانات 'string' وتعيين رسالة إلى 'error_str[]'. بعد ذلك، نستخدم الكائن 'cerr' حيث نضع رسالة الخطأ ونمرر 'error_str' هذا. لذلك، عندما نقوم بتنفيذ هذا البرنامج، فإنه يعرض كلا الرسالتين.

الكود 2:

#تشمل

استخدام اسم للمحطة ;

كثافة العمليات رئيسي ( ) {

شار error_str [ ] = 'لا يمكننا قراءة السلسلة هنا!' ;

cerr << 'حدث خطأ : ' << error_str << endl ;

}

انتاج:



أصبح النص الذي نكتبه بعد كتابة 'cerr <<' مرئيًا الآن في النتيجة بالإضافة إلى الرسالة التي أضفناها في 'error_str'. وتظهر النتيجة أيضا في ما يلي:

مثال 3:

بعد تضمين ملف الرأس ثم وضع مساحة الاسم 'std'، نسمي الطريقة 'main()'. بعد ذلك، يتم الإعلان عن المتغير الصحيح 'NumOfLine' هنا وتهيئته باستخدام '__LINE__'. يقوم هذا '__LINE__' بإنشاء رسائل الخطأ. أسفل هذا، نستخدم الكائن 'cerr' ونضع رسالة الخطأ التي نريد عرضها للمستخدم. نقوم أيضًا بوضع المتغير 'NumOfLine' الذي يوضح رقم السطر الذي حدث فيه الخطأ في الكود.

الكود 3:

#تشمل

استخدام اسم للمحطة ;

كثافة العمليات رئيسي ( ) {

كثافة العمليات نوموفلين = __خط__ ;

cerr << 'حدث خطأ هنا على السطر:' << نوموفلين ;

يعود 0 ;

}

انتاج:

يظهر هنا أن الخطأ يحدث في السطر '4' حيث أضفنا '__LINE__' في السطر الرابع من الكود. يتم عرض هذه الرسالة هنا بمساعدة كائن 'cerr' في لغة C++.

مثال 4:

نقوم بتضمين ملف رأسي آخر، وهو 'fstream'. يتم استخدام ملف الرأس 'fstream' هذا في لغة C++ لقراءة ملف أو كتابته أو إنشائه لأنه مزيج من 'ofstream' بالإضافة إلى 'ifstream'. الآن، بعد إضافة 'مساحة الاسم std' واستدعاء 'main()'، نستخدم 'fstream' مع المتغير 'new_file'.

بعد ذلك، نستخدم الدالة 'open()' هنا مع 'new_file' ونمرر اسم الملف كمعلمة. اسم الملف هو 'myTextFile.txt' الذي نريد فتحه. أسفل هذا، نستخدم 'if' لتمرير المتغير 'new_file'. الآن، إذا تم فتح الملف هنا، فسيتم عرض العبارة بعد 'if'. بخلاف ذلك، سيتم عرض العبارة بعد 'else' حيث نضيف الكائن 'cerr' لإظهار رسالة خطأ.

الكود 4:

#تشمل

#تشمل

استخدام اسم للمحطة ;

كثافة العمليات رئيسي ( ) {

fstream new_file ;

ملف جديد. يفتح ( 'ملفي النصي.txt' ) ;

لو ( ملف جديد ) {

cout << 'تم فتح الملف بنجاح هنا!' ;

}

آخر {

cerr << 'حدث خطأ هنا أثناء فتح الملف هنا!' ;

}

يعود 0 ;

}

انتاج:

لا يمكننا فتح الملف الذي قدمناه سابقا. يعرض هنا رسالة الخطأ التي قمنا بإدراجها بعد الكائن 'cerr'.

مثال 5:

وهنا نريد فتح ملف آخر. لذلك، نقوم بإضافة كل من ملفات الرأس ومساحة الاسم 'std'. الآن، نسمي 'main()' ثم نستخدم 'fstream' مع المتغير 't_file'. بعد ذلك، نستخدم الدالة 'open()' في هذه الحالة مع 'new_file' ونوفر اسم الملف كوسيطة. الملف الذي نرغب في فتحه يسمى 'New.txt'. نستخدم عبارة 'if' لتمرير المتغير 't_file'. الآن، إذا تم فتح الملف، فسيتم عرض السطر الذي يلي 'if'. إذا لم يكن الأمر كذلك، فسيتم عرض العبارة التي تلي 'else'، حيث أضفنا الكائن 'cerr' لعرض رسالة خطأ.

الكود 5:

#تشمل

#تشمل

استخدام اسم للمحطة ;

كثافة العمليات رئيسي ( ) {

fstream t_file ;

t_file. يفتح ( 'ملف جديد' ) ;

لو ( t_file ) {

cout << 'الملف مفتوح هنا!' ;

}

آخر {

cerr << 'حدث خطأ!' ;

}

يعود 0 ;

}

انتاج:

لا يمكن فتح الملف الذي قدمناه. لذا تظهر رسالة الخطأ التي أضفناها بعد كائن 'cerr' بالشكل التالي:

مثال 6:

نضيف هنا ملف رأس 'استثناء' يُستخدم للتحقق من الأخطاء التي قد تحدث في الكود الخاص بنا. فيما يلي، نقوم بتهيئة مصفوفة من النوع الصحيح تسمى 'new_array' بحجم '6'. بعد ذلك، قمنا بتعيين 'new_index' للمتغير 'int' وقمنا بتعيين '7' هنا. الآن، نقوم أيضًا بتهيئة المتغير 'new_size' وتعيين '*(&new_arr + 1) – new_arr' للمتغير 'new_size'.

بعد ذلك، نستخدم 'المحاولة' و'الرمي' و'التقاط' التي تُستخدم للتحقق من الأخطاء ورمي رسالة الخطأ. نستخدم كائن 'اللون' الذي يعرض رسالة الخطأ التي أضفناها بعد الكلمة الأساسية 'رمي'.

الكود 6:

#تشمل

#تشمل <استثناء>

استخدام اسم للمحطة ;

كثافة العمليات رئيسي ( ) {



كثافة العمليات new_arr [ 6 ] = { 1 , 9 , 4 , 3 , 8 , 7 } ;

كثافة العمليات new_index = 7 ;



كثافة العمليات new_size = * ( & new_arr + 1 ) - new_arr ;

يحاول {

لو ( new_index < 0 || new_index >= new_size ) يرمي ( 'الفهرس ليس ضمن النطاق. إنه خارج النطاق هنا' ) ;



آخر

cout << new_arr [ new_index ] ;



}

يمسك ( مقدار ثابت شار * يخطئ ) {

cerr << يخطئ ;

}

يعود 0 ;

}

انتاج:

هنا، يعرض رسالة خطأ توضح أن 'الفهرس' خارج النطاق وقد حصلنا على هذا الخطأ من خلال استخدام كائن 'cerr'.

مثال 7:

هنا، نتحقق من الخطأ الذي قد يحدث عند قسمة عدد على صفر. نقوم بإنشاء دالة 'd ()' نقوم من خلالها بتمرير متغيرين من نوع البيانات 'int' 'a1' و 'a2'. ونضيف أسفل ذلك كلمة 'if' التي نمرر فيها الشرط 'a2==0'. إذا كانت قيمة 'a2' صفرًا، فسيتم تنفيذ الرسالة التي نضعها بعد 'throw' والتي نحصل عليها عن طريق وضع كائن 'cerr' في الكود.

بعد ذلك نضع 'العودة' التي ترجع إجابة القسمة إذا كانت قيمة 'a2' ليست صفراً. الآن، نقوم باستدعاء 'main()' وتعيين '87' إلى 'x' بعد تهيئته كمتغير 'int'. بعد ذلك، نقوم أيضًا بتهيئة المتغيرات 'b' و'd_res' بالقيمة '0'. هنا، نضع 'try' و'catch' اللذين يلتقطان الخطأ ويعرض 'cerr' رسالة الخطأ التي أضفناها بعد الكلمة الأساسية 'throw'.

الكود 7:

#تشمل

استخدام اسم للمحطة ;

كثافة العمليات my_division ( كثافة العمليات a1 , كثافة العمليات a2 ) {

لو ( a2 == 0 ) {

يرمي 'القسمة على الصفر غير ممكنة!' ;

}

يعود ( a1 / a2 ) ;

}

كثافة العمليات رئيسي ( ) {

كثافة العمليات س = 87 ;

كثافة العمليات و = 0 ;

كثافة العمليات د_لا شيء = 0 ;

يحاول {

د_لا شيء = my_division ( س , و ) ;

cout << د_لا شيء << endl ;

} يمسك ( مقدار ثابت شار * رسالة ) {

cerr << رسالة << endl ;

}

يعود 0 ;

}

انتاج:

وهنا تظهر رسالة الخطأ التي تعني أننا نريد قسمة الرقم على '0' وهذا مستحيل.

خاتمة

تمت دراسة كائن 'cerr' بالتفصيل هنا. لقد حددنا كيف يساعد كائن 'cerr' في عرض رسالة الخطأ في برمجة C++. لقد استكشفنا أمثلة متعددة حيث وضعنا العديد من الشروط التي يحدث فيها الخطأ. استخدمنا أيضًا كائن 'cerr' بعد وضع طريقة محاولة الالتقاط وفي رمز فتح الملف. لقد أظهرنا الكود بالإضافة إلى النتيجة التي يعرض فيها 'cerr' رسالة خطأ.