شرح C++

إدخال المستخدم (cin)

القراءة بـ cin

نستخدم cin مع العامل >> لقراءة إدخال المستخدم:

#include <iostream>
using namespace std;

int main() {
    int age;
    cout << "كم عمرك؟ ";
    cin >> age;
    cout << "بعد عام ستكون " << age + 1;
    return 0;
}

لاحظ اتجاه العامل: cout << للإخراج، وcin >> للإدخال.

قراءة عدّة قيم

int a, b;
cout << "أدخل رقمين: ";
cin >> a >> b;
cout << "المجموع: " << a + b;

مشكلة cin مع النصوص

cin >> يتوقّف عند أول مسافة، فلا يقرأ الاسم الكامل:

string name;
cin >> name;        // "محمد علي" → يقرأ "محمد" فقط

الحلّ: getline

لقراءة سطر كامل بما فيه المسافات:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string fullName;
    cout << "أدخل اسمك الكامل: ";
    getline(cin, fullName);
    cout << "أهلًا " << fullName;
    return 0;
}

خلط cin و getline

⚠️ بعد cin >> x، يبقى محرف السطر الجديد في المخزن فيلتقطه getline التالي ويبدو أنه "تخطّى" الإدخال. الحلّ: cin.ignore(); قبل getline.

int age;
string name;
cin >> age;
cin.ignore();           // تجاهل بقية السطر
getline(cin, name);

أخطاء شائعة

  • استخدام cin >> لقراءة اسم به مسافة فيُقتطع.
  • نسيان cin.ignore() عند الخلط بين cin >> وgetline.

🎯 التالي: العوامل (Operators).