ألدرس الرابع - أمر الطباعة

أمر الطباعة cout

بشكل عام, نستخدم الأمر cout لطباعة أي شيء نريد في الكونسول.
عند إستخدام الأمر cout يجب أن تضع العامل << قبل أي شيء تريد تمريره له حتى يتم طباعته.

 

مثال

main.cpp

  1. #include <iostream>
  2. int main()
  3. {
  4. std::cout << "Harmash.com";
  5. return 0;
  6. }

 

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

Harmash.com

 

شرح الكود

  • الأمر #include <iostream> الموجود في السطر الأول يحتوي على الأوامر الأساسية التي نحتاجها في التطبيقات التي تعتبر Console Application و التي سنستخدمها في أغلب البرامج مثل أمر الطباعة cout و غيره من الأوامر و الدوال الجاهزة التي ستمر معك لاحقاً في الدورة.
  • سبب وضع std:: قبل cout هو أن الأمر cout موجود فيه.
  • الدالة main() التي قمنا بتعريفها ابتداءاً من السطر الثالث يجب أن يكون نوعها int لأنها تمثل نقطة البداية في البرنامج.
  • وضع return 0; في السطر السادس و كآخر أمر في الدالة main() هو أمر متعارف عليه, و فكرته إرسال الرقم 0 لنظام التشغيل عند انتهاء أو إغلاق البرنامج بشكل طبيعي. هكذا سيتمكن نظام التشغيل من التفريق بين الإنهاء الطبيعي للبرنامج والإنهاء المفاجئ ( Crash ) الذي يحدث نتيجة خطأ ما.

 

مبادئ الطباعة الأساسية

  • عليك مراعاة المبادئ التالية عند استخدام الأمر cout.
  • لعرض رقم, ضعه كما هو.
  • لعرض قيمة متغير, ضعه كما هو.
  • لعرض حرف يجب وضعه بين ' '.
  • لعرض كلمة أو نص, يجب وضعه بين " ".

طباعة عدة أشياء دفعة واحدة بواسطة الأمر cout في C++

لدمج عدة أشياء مختلفة و عرضها باستخدام الأمر cout نضع الرمز << بين كل شيئين نريد طباعتهما.

 

في المثال التالي, قمنا بإنشاء برنامج يحتوي على متغيرين name و year.
بعدها قمنا بعرضهما كجملة واحدة.

مثال

main.cpp

  1. #include <iostream>
  2. int main()
  3. {
  4. char *name = "Ali";
  5. int year = 1996;
  6.  
  7. std::cout << "Hello my name is " << name << ", I born in " << year;
  8. return 0;
  9. }

 

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

Hello my name is Ali, I born in 1996

 

عرض المحتوى على سطر جديد C++

عند عرض المحتوى بواسطة الأمر cout يمكنك تحديد نهاية السطر من خلال وضع العامل endl و عندها سيظهر أي شيء تطبعه بعده على سطر جديد.
معلومة: endl إختصار لجملة End Line.

 

مثال

main.cpp

  1. #include <iostream>
  2. int main()
  3. {
  4. std::cout << "Harmash.com" << std::endl << "C++ course";
  5. return 0;
  6. }

 

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

Harmash.com

C++ course

سبب وضع std:: قبل العامل endl هو أن العامل endl موجود فيه

 

 

أهمية الكلمة using في C++

في البداية, سنشرح الكلملة using بتفصيل ممل في درس لاحق نظراً لأهميتها في المشاريع.
الآن, إذا أردت أن تكتب الأمرين cout و endl بشكل مباشر بدون الحاجة لأن تكتب قبلهما std::, قم بتضيمن النطاق std مرة واحدة في الملف و عندها تصبح قادر على استخدام أي شيء موجود فيه بشكل مباشر.

لتضمين النطاق std في الملف main.cpp نكتب using namespace std; فوق الدالة main().

 

الآن, سنعيد نفس المثال السابق مع تضمين النطاق std بشكل مباشر.

مثال

main.cpp

 

  1. #include <iostream>
  2. using namespace std; // std هنا قمنا بتضيمن النطاق
  3. int main()
  4. {
  5. cout << "Harmash.com" << endl << "C++ course";
  6. return 0;
  7. }

 

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

Harmash.com

C++ course

 

 

النزول على سطر جديد بواسطة الرمز في C++

إذا أردت النزول على سطر جديد بدون الحاجة لكتابة << endl فيمكنك تمرير كنص.
ملاحظة: أغلب المبرمجين يفضلون تمرير بدل كتابة << endl لأنها مختصرة أكثر.

معلومة: إختصار لجملة New Line.

في المثال التالي قمنا بتمرير كنص للأمر cout من أجل النزول على سطر جديد.

مثال

main.cpp

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. cout << "Harmash.com C++ course";
  5. return 0;
  6. }

 

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

Harmash.com

C++ course

 

هنا قمنا بإعادة المثال السابق تماماً مع كتابة أمرين cout هذه المرة.
ملاحظة: هذا الأسلوب أسهل من ناحية القراءة و التعديل و لهذا ننصح باعتماده بدلاً من الأسلوب السابق.

مثال

main.cpp

  1. #include <iostream>
  2. using namespace std;
  3. int main() {
  4. cout << "Harmash.com ";
  5. cout << "C++ course";
  6. return 0;
  7. }

 

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

Harmash.com

C++ course

 

وضع عدة مسافات فارغة بواسطة الرمز في C++

إذا أردت وضع عدة مسافات فارغة دفعة واحدة و بشكل مرتب فالأفضل أن تستخدم الرمز بدل وضع المسافات بنفسك.
من الأشياء التي قد تجعلك تستخدم هي أنه عند طباعة عدة أسطر تجده يحاول عرضهم لك بشكل متناسق لإظهار المحتوى بشكل أسهل للقراءة.

معلومة: إختصار لجملة Tab Space.

في المثال التالي قمنا بوضع الرمز بين الكلمات من أجل وضع مسافة تلقائية بينهم بشكل مرتب.

مثال

main.cpp

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. cout << "Name: Ali Rabeei ";
  6. cout << "Job: Programmer";
  7. return 0;
  8. }

 

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

Name: Ali Rabeei

Job: Programmer

 

صدار صوت تنبيه بواسطة الرمز a في C++

إذا أردت إصدار صوت تنبيه لجعل المستخدم ينتبه للكونسول, يمكنك ذلك بكل سهولة من خلال تمرير الرمز a كنص للأمر cout.

معلومة: a إختصار لكلمة Alert.

في المثال التالي قمنا باستخدام الرمز a لتشغيل صوت تنبيه في جهاز المستخدم.

مثال

main.cpp

  1. #include <iostream>
  2. using namespace std;
  3. int main()
  4. {
  5. cout << "Yes, you hear the alert :)a";
  6. return 0;
  7. }

 

لا تنسى رفع صوت الحاسوب حتى تسمع صوت التنبيه عند التشغيل و سيظهر لك النص التالي أيضاً.

Yes, you hear the alert :)

 

 

المسافات الفارغة و ترتيب الكود في C++

لغة C++ لا تتأثر بالمساحات البيضاء ( White Spaces ) مثل المسافات والأسطر الفارغة حتى انه يمكن كتابة بعض البرامج بالكامل في سطر واحد و لكن لا ننصح ابداً بذلك و يفضل ترك مسافات و أسطر فارغة حتى تكون قادر على مراجعة و استيعاب الكود بسهولة تامة عند الرجوع إليه.

في المثال التالي قمنا بكتابة نفس المثال السابق على سطر واحد.
تنبيه: رغم أن الأسلوب التالي لا يوجد فيه أي مشكلة برمجياً, إلاّ أننا ننصحك بعدم إعتماد هذا الأسلوب إطلاقاً عند كتابة الكود.

مثال

main.cpp

 

  1. #include <iostream>
  2. using namespace std; int main() {cout << "Harmash.com"<<endl<<"C++ course";return 0;}

 

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

Harmash.com

C++ course