القراءة بـ 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).