DEV Community

ismoilov mukhammadumar
ismoilov mukhammadumar

Posted on

C++ da cin

Oldingi postlarimizda biz faqat kompyuterga ma'lumot chiqarishni (cout) o'rgandik. Lekin haqiqiy dastur foydalanuvchi bilan muloqot qilishi, undan ma'lumot qabul qila olishi kerak.
Bugun biz — cin haqida gaplashamiz.

  1. cin o'zi nima?
  • cin (Character Input) — bu kompyuterga klaviaturadan ma'lumot o'qishni buyuruvchi vositadir.

  • cout — ma'lumotni tashqariga (ekranga) chiqaradi <<.

  • cin — ma'lumotni ichkariga (o'zgaruvchiga) olib kiradi >>.
    Eslab qolish uchun: >> belgilari ma'lumot klaviaturadan o'zgaruvchi tomonga "oqib kirayotganini" bildiradi.

  1. Qanday ishlaydi? (3 ta qadam)
  • Ma'lumot qabul qilish uchun bizda har doim uni saqlaydigan "idish" (o'zgaruvchi) bo'lishi kerak:

  • O'zgaruvchi e'lon qilish: int yosh;

  • Foydalanuvchidan so'rash: cout << "Yoshingizni kiriting: ";
    Ma'lumotni qabul qilish: cin >> yosh;

  1. Amaliy misol Keling, foydalanuvchining ismini va yoshini so'raydigan kichik dastur tuzamiz:
cpp
#include <iostream>
#include <string> // Matnlar bilan ishlash uchun
using namespace std;

int main() {
    string ism;
    int yosh;

    cout << "Ismingiz nima? ";
    cin >> ism; // Ismni o'qiymiz

    cout << "Yoshingiz nechada? ";
    cin >> yosh; // Yoshni o'qiymiz

    cout << "Salom, " << ism << "! Siz " << yosh << " yoshdasiz." << endl;

    return 0;
}
Enter fullscreen mode Exit fullscreen mode
  1. Muhim Eslatmalar va Tuzoqlar
  • Bo'shliq (Probel) muammosi
    cin bitta so'zni o'qigach, birinchi duch kelgan bo'shliqni (probel) "to'xtash belgisi" deb hisoblaydi.

  • Agar siz cin >> ism; deb yozsangiz va "Ali Vali" deb kiritsangiz, kompyuter faqat "Ali" qismini oladi.

  • Yechim: To'liq gapni o'qish uchun getline(cin, ism); funksiyasi ishlatiladi.

  1. Ma'lumot turi mosligi Agar dastur int (son) kutayotgan bo'lsa-yu, siz harf kiritsangiz, dastur adashib qoladi (error bermasa ham, kutilmagan natija chiqaradi). Shuning uchun doim to'g'ri turdagi o'zgaruvchidan foydalaning

Top comments (0)