0Pricing
C++ Academy · درس

استخدام std::cin وstd::cout بطريقة صحيحة

نفّذ إدخالًا وإخراجًا عبر التدفقات القياسية وتجنّب الأخطاء الشائعة

استخدام std::cin وstd::cout بطريقة صحيحة درس مجاني في C++ Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في C++ Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة C++ Academy 4 دروس في المجموع.

ترويسة iostream

كل من std::cin وstd::cout كائنان من الترويسة <iostream>. وهما يمثلان تدفقي الإدخال والإخراج القياسيين في الطرفية.

الإخراج باستخدام std::cout

أرسل القيم إلى std::cout باستخدام <<. ويعمل ذلك مع أي نوع لديه تحميل زائد للمعامل operator<< — بما في ذلك جميع الأنواع المضمّنة وstd::string.

int age = 30;
std::string name = "Ada";
std::cout << "Name: " << name << ", Age: " << age << "\n";

الإدخال باستخدام std::cin

اقرأ القيم باستخدام std::cin >> variable. وتفصل المسافات البيضاء بين الرموز.

int age;
std::string name;
std::cout << "Enter name and age: ";
std::cin >> name >> age;
std::cout << name << " is " << age << "\n";

تخطي المسافات البيضاء

يتخطى >> افتراضيًا المسافات البيضاء البادئة، مثل المسافات وعلامات الجدولة والأسطر الجديدة، قبل القراءة. وهذا هو السلوك المطلوب عادةً — لكن انتبه إليه عند قراءة المحارف المفردة.

قراءة سطر كامل

يقرأ std::cin >> name كلمة واحدة فقط. ولقراءة سطر يحتوي على مسافات، استخدم std::getline.

std::string line;
std::getline(std::cin, line);
std::cout << "You said: " << line;

الخلط بين >> وgetline: خطأ شائع

بعد std::cin >> n، يبقى محرف السطر الجديد في المخزن المؤقت. لذلك تقرأ getline التالية سلسلة فارغة. امسح محرف السطر الجديد أولًا.

int n;
std::cin >> n;
std::cin.ignore();  // consume the leftover newline
std::string line;
std::getline(std::cin, line);

حالة التدفق

للتدفقات بتات حالة هي: good وeof وfail وbad. استخدم if (std::cin) للتحقق من أن التدفق لا يزال قابلًا للاستخدام بعد الاستخراج.

اكتشاف نهاية الملف

يُشار إلى نهاية الملف باستخدام Ctrl+D في Unix أو Ctrl+Z في Windows. كرّر التنفيذ ما دام التدفق في حالة جيدة لمعالجة كامل الإدخال.

int n;
while (std::cin >> n) {
    std::cout << n * 2 << "\n";
}

إدخال وإخراج أسرع للشيفرة التنافسية

عطّل المزامنة مع إدخال وإخراج C القياسيين لتسريع القراءة في البرمجة التنافسية. وافصل أيضًا ربط cin بـ cout.

std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);

std::endl مقابل \n مجددًا

يكتب std::endl سطرًا جديدًا ويُجري تفريغًا للمخزن المؤقت. أما "\n" فيكتب سطرًا جديدًا فقط. استخدم "\n" داخل الحلقات للحفاظ على الأداء مرتفعًا.

التفريغ يدويًا

إذا احتجت إلى تفريغ المخزن المؤقت دون كتابة سطر جديد، فاستخدم std::flush. وهذا مفيد لمؤشرات التقدم.

for (int i = 0; i < 100; ++i) {
    std::cout << "\r" << i << "%" << std::flush;
    // ... work ...
}

تحقق سريع

ما الفرق بين std::endl و"\n" في الإخراج؟

مراجعة

استخدم std::cout مع << للطباعة، وstd::cin مع >> لقراءة الرموز. وللقراءة سطرًا كاملًا، استخدم std::getline، وامسح محارف السطر الجديد المتبقية باستخدام cin.ignore() بعد إدخال رقمي.

الأسئلة الشائعة

هل درس «استخدام std::cin وstd::cout بطريقة صحيحة» مجاني؟

نعم — نص درس «استخدام std::cin وstd::cout بطريقة صحيحة» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة C++ Academy، انتقل إلى CoddyKit PRO. تتضمن دورة C++ Academy 4 دروس في المجموع.

ماذا ستتعلم في «استخدام std::cin وstd::cout بطريقة صحيحة»؟

نفّذ إدخالًا وإخراجًا عبر التدفقات القياسية وتجنّب الأخطاء الشائعة تتمرن على C++ Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ C++ Academy؟

لا تُشترط خبرة سابقة. C++ Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «استخدام std::cin وstd::cout بطريقة صحيحة»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس C++ Academy هذا؟

نعم. كل درس في C++ Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. استخدام std::cin وstd::cout بطريقة صحيحة
  2. تنسيق الإخراج باستخدام iomanip
  3. قراءة الإدخال بأمان باستخدام getline
  4. التعامل مع std::cerr وstd::clog
← العودة إلى C++ Academy