cin

C++ cin obyekti

❮ iostream obyektlari


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 

Misolni ishga tushirish »


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.



❮ iostream obyektlari

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!