cin
C++ cin obyekti
Misol
Foydalanuvchi kiritgan ma’lumotni o‘qish uchun cin obyektidan foydalaning:
int x;
cout << "Type a number: "; // Type a number and press enter
cin >> x; // Get user input from the keyboard
cout << "Your number is: " << x; // Display the input value
Ta’rif va qo‘llanilishi
cin obyekti klaviatura orqali kiritilgan ma’lumotlarni yoki fayldagi ma’lumotlarni o‘qish uchun ishlatiladi.
cin obyektidan foydalanishning eng keng tarqalgan usuli — uni >> ajratib olish (extraction) operatori bilan ishlatish. Ajratib olish operatori kiritilgan ma’lumotlarni o‘zgaruvchi uchun mos tipga o‘tkazadi:
int x;
cin >> x;
Ma’lumotlarni bir nechta o‘zgaruvchiga joylash uchun ajratib olish operatoridan bitta qatorda bir necha marta foydalanish mumkin:
int x, y;
cin >> x >> y;
Eslatma: cin obyekti <iostream> sarlavha faylida aniqlangan.
Metodlar
>> ajratib olish operatoridan tashqari, cin obyektida kiritilgan ma’lumotlarni o‘qish uchun metodlar ham bor.
get()
cin.get() metodi kirish manbasidan bitta belgini o‘qiydi va uni qaytaradi.
char c = cin.get();
cout << c;
cin.get(str, n) metodi kirish manbasidan nusxalangan ko‘pi bilan n ta belgini char tipidagi str massiviga yozadi. Agar yangi qator belgisi \n uchrasa, u yangi qatorni qo‘shmasdan, shu joyda to‘xtaydi. Oxirgi yozilgan belgi har doim \0 null belgisi bo‘ladi.
Ajratuvchi sifatida \n belgisidan boshqa belgini belgilash uchun qo‘shimcha parametrdan foydalanish mumkin.
char str[20];
cin.get(str, 5);
cout << c;
// Stop reading when a "." is found
cin.get(str, 5, '.');
cout << c;
getline()
cin.getline(str, n) metodi get(str, n) bilan bir xil, faqat yangi qator belgisi \n yoki ko‘rsatilgan ajratuvchi uchraganda, u kirish manbasidan olib tashlanadi, shunda keyingi cin amali undan foydalanmaydi.
char str[20];
cin.getline(str, 5);
cout << c;
// Stop reading when a "." is found
cin.getline(str, 5, '.');
cout << c;
read()
cin.read(str, n) metodi kirish manbasidan ko‘pi bilan n ta belgini o‘qiydi va ularni ajratuvchilarni tekshirmasdan hamda \0 null belgisini qo‘shmasdan char tipidagi str massiviga yozadi.
char str[] = "Hello World";
cin.read(str, 5);
cout << str;
gcount()
cin.gcount() metodi yuqoridagi metodlardan biri kirish manbasidan olgan belgilar sonini qaytaradi.
char str[20];
cin.get(str, 5);
int num = cin.gcount();
cout << "Read " << num << " characters and got " << str << "\n";
cin.clear()
Agar cin xato holatiga (fail state) o‘tsa (masalan, son o‘rniga matn kiritsangiz), keyingi ma’lumotni kiritishdan oldin xato flagini tozalash uchun cin.clear() metodini chaqirishingiz kerak.
int x;
cin >> x;
if (cin.fail()) {
cin.clear(); // Clear the error flag
cout << "Invalid input. Please enter a number.\n";
}
cin.ignore()
cin.ignore() metodi kirish buferidagi belgilarni o‘tkazib yuboradi. U odatda ma’lumot o‘qilgandan keyin cin qoldirgan ortiqcha belgilarni yoki yangi qator belgisini tashlab yuborish uchun ishlatiladi.
Bu cin >> va getline() o‘rtasida almashganda kiritilgan ma’lumot o‘tkazib yuborilishining oldini olish uchun foydali.
int age;
cout << "Enter your age: ";
cin >> age;
cin.ignore(10000, '\n'); // Skip leftover newline
string name;
cout << "Enter your name: ";
getline(cin, name); // This now works properly
Parametrlar quyidagini bildiradi: 10000 tagacha belgini yoki yangi qator belgisi ('\n') topilguncha o‘tkazib yuborish — qaysi biri oldinroq sodir bo‘lsa.
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
