cout

C++ cout obyekti

❮ iostream obyektlari


Misol

Turli ma’lumot tiplarini chiqarish uchun cout obyektidan foydalaning:

string myStr = "Hello World!";
bool myBool = false;
int myInt = 50;
float myFloat = 19.99;

cout << myStr << "\n";
cout << myBool << "\n";
cout << myInt << "\n";
cout << myFloat << "\n";

O‘zingiz sinab ko‘ring »


Ta’rif va qo‘llanilishi

cout obyekti qiymatlarni chiqarish/matnni chop etish uchun ishlatiladi.

cout obyektidan foydalanishning eng keng tarqalgan usuli — uni << joylash (insertion) operatori bilan ishlatish. Joylash operatori o‘zgaruvchi yoki literal qiymatni qanday ifodalashni uning ma’lumot tipiga qarab hal qiladi.

cout << "Hello World!";

O‘zingiz sinab ko‘ring »

Bir nechta qiymatni chiqarish uchun joylash operatoridan bitta qatorda bir necha marta foydalanish mumkin:

cout << "The answer is: " << x;

O‘zingiz sinab ko‘ring »

Eslatma: cout obyekti <iostream> sarlavha faylida aniqlangan.


Manipulyatorlar

Manipulyatorlar chiqariladigan natijaning formatini o‘zgartirish imkonini beradi. Ular << joylash operatori bilan literal qiymatlar va o‘zgaruvchilar kabi ishlatiladi hamda o‘zidan keyin keladigan natijaga ta’sir qiladi.

setw() manipulyatoridan tashqari, manipulyatorning ta’siri uni boshqa manipulyator o‘zgartirmaguncha saqlanib qoladi.

Quyidagi jadvalda foydali manipulyatorlar ro‘yxati keltirilgan:

Manipulyator Tavsif Misol
boolalpha Boolean qiymatlarni "1" va "0" o‘rniga "true" va "false" ko‘rinishida ko‘rsatadi. cout << boolalpha << false;
dec Butun sonlarni o‘nlik raqamlar bilan ifodalaydi. cout << dec << 12;
endl Yangi qator belgisini chiqaradi. Bu manipulyator chiqish buferini ham bo‘shatadi (flush), shu sababli u \n belgisini chop etishga qaraganda kamroq samarali. cout << "Line 1" << endl << "Line 2";
ends C uslubidagi stringlarni yakunlash uchun ishlatiladigan null belgisini chiqaradi. Asosan fayllarga yozishda ishlatiladi. cout << "Hello World!" << ends;
fixed Suzuvchi nuqtali sonlarni kasr qismidagi raqamlar soni qat’iy belgilangan holda ifodalaydi. Kasr qismidagi raqamlar sonini setprecision() manipulyatori yordamida belgilash mumkin. cout << fixed << 19.99;
hex Butun sonlarni o‘n oltilik raqamlar bilan ifodalaydi. cout << hex << 12;
internal Agar kenglik belgilangan bo‘lsa (setw() manipulyatori yordamida), sonlarning ishorasi chapga, qiymati esa o‘ngga tekislanadi, boshqa ma’lumot tiplarida esa natija o‘ngga tekislanadi. cout << setw(10) << internal << -12345;
left Agar kenglik belgilangan bo‘lsa (setw() manipulyatori yordamida), natijani chapga tekislaydi. cout << setw(10) << left << "Hello";
noboolalpha boolalpha manipulyatori kiritgan o‘zgarishni bekor qilish uchun ishlatiladi. cout << noboolalpha << false;
noshowbase showbase manipulyatori kiritgan o‘zgarishni bekor qilish uchun ishlatiladi. cout << hex << noshowbase << 12;
noshowpoint showpoint manipulyatori kiritgan o‘zgarishni bekor qilish uchun ishlatiladi. cout << noshowpoint << 12345.0;
noshowpos showpos manipulyatori kiritgan o‘zgarishni bekor qilish uchun ishlatiladi. cout << noshowpos << 12;
nouppercase uppercase manipulyatori kiritgan o‘zgarishni bekor qilish uchun ishlatiladi. cout << hex << nouppercase << 12;
oct Butun sonlarni sakkizlik raqamlar bilan ifodalaydi. cout << oct << 12;
right Agar kenglik belgilangan bo‘lsa (setw() manipulyatori yordamida), natijani o‘ngga tekislaydi. cout << setw(10) << right << "Hello";
fixed Suzuvchi nuqtali sonlarni ilmiy yozuvda ifodalaydi. Kasr qismidagi raqamlar sonini setprecision() manipulyatori yordamida belgilash mumkin. cout << fixed << 19.99;
setfill() To‘ldiruvchi sifatida ishlatiladigan belgini tanlaydi.
<iomanip> kutubxonasi kerak bo‘ladi.
cout << setfill('.') << setw(10) << 19.99;
setprecision() Suzuvchi nuqtali sonlarning aniqligini tanlaydi. Agar fixed yoki scientific manipulyatorlari ishlatilgan bo‘lsa, u kasr qismidagi raqamlar sonini, aks holda qiymatli raqamlar sonini belgilaydi.
<iomanip> kutubxonasi kerak bo‘ladi.
cout << setprecision(4) << 12.3456;
setw() Keyingi chiqariladigan natijaning belgilarda o‘lchanadigan eng kam kengligini belgilaydi. Agar natija yetarlicha keng bo‘lmasa, qolgan joyni to‘ldirish uchun to‘ldiruvchi belgilar qo‘shiladi.
<iomanip> kutubxonasi kerak bo‘ladi.
cout << setw(10) << "Hello";
showbase Butun sonlarni o‘n oltilik yoki sakkizlik ko‘rinishda ifodalashda sanoq sistemasini ko‘rsatish uchun sonlar oldiga "0x" yoki "0" qo‘yadi. cout << hex << showbase << 12;
showpoint Suzuvchi nuqtali sonlarda o‘nlik nuqtani, hatto u kerak bo‘lmasa ham, har doim ko‘rsatadi. cout << showpoint << 12345.0;
showpos Musbat sonlar yonida har doim + belgisini ko‘rsatadi. cout << showpos << 12;
uppercase O‘n oltilik raqamlarni va ilmiy yozuvdagi "e" harfini katta harfda ifodalaydi. cout << hex << uppercase << 12;

Misol

Natija qanday formatlanishini o‘zgartirish uchun manipulyatorlardan foydalaning:

// Booleans
cout << "Booleans\n";
cout << false << "\n";
cout << boolalpha << false << "\n";

// Hexadecimal and octal numbers
cout << "\nHexadecimal and octal numbers\n";
int myInt = 14;
cout << dec << myInt << "\n";
cout << hex << myInt << "\n";
cout << oct << myInt << "\n";
cout << showbase << uppercase;
cout << hex << myInt << "\n";
cout << oct << myInt << "\n";
cout << dec;

// Floating point numbers
cout << "\nFloating point numbers\n";
float myFloat = 19.99;
cout << myFloat << "\n";
cout << showpos << showpoint << 12345.0 << "\n";
cout << noshowpos << noshowpoint;
cout << fixed << myFloat << "\n";
cout << scientific << myFloat << "\n";

// Alignment
cout << "\nAlignment\n";
cout << setw(10) << left << "Left" << "\n";
cout << setw(10) << right << "Right" << "\n";
cout << setw(10) << internal << -12345 << " (Internal)\n";

O‘zingiz sinab ko‘ring »



Metodlar

cout obyektida << joylash operatori bajaradigan amallarni bajara oladigan metodlar ham bor.

Chiqarish metodlari

cout.write(str, n) metodi char tipidagi str massividan dastlabki n ta belgini hech qanday formatlashsiz chiqaradi.

Misol

char myStr[] = "Hello World!";
cout.write(myStr, 5);

O‘zingiz sinab ko‘ring »

cout.put(c) metodi ko‘rsatilgan c belgisini hech qanday formatlashsiz chiqaradi.

Misol

char grade = 'B';
cout.put(grade);

O‘zingiz sinab ko‘ring »

Formatlash metodlari

cout.precision(p) metodi suzuvchi nuqtali sonlarni ifodalash uchun nechta raqam ishlatilishini belgilaydi. Standart holatda u ko‘rsatiladigan qiymatli raqamlar sonini belgilaydi. Agar ios::fixed yoki ios::scientific flagi yoqilgan bo‘lsa, u o‘nlik nuqtadan keyin nechta raqam kelishini belgilaydi.

Misol

cout.precision(4);
cout << 12.3456;

O‘zingiz sinab ko‘ring »

cout.width(w) metodi keyingi chiqariladigan natija egallashi kerak bo‘lgan eng kam kenglikni belgilarda belgilaydi. Agar natijadagi belgilar yetarli bo‘lmasa, qolgan joyni to‘ldirish uchun to‘ldiruvchi belgilar qo‘shiladi. Standart holatda to‘ldiruvchi belgilar bo‘sh joylardan iborat bo‘lib, ular chap tomonga qo‘shiladi, natijada tarkib o‘ngga tekislanadi. Tekislashni quyidagi Flaglar bo‘limida tavsiflangan ios::adjustfield flaglaridan biri yordamida o‘zgartirish mumkin.

Misol

cout.width(10);
cout << 5 << "\n";
cout.width(10);
cout << 25 << "\n";
cout.width(10);
cout << 125 << "\n";

O‘zingiz sinab ko‘ring »

cout.fill(c) metodi to‘ldiruvchi sifatida qaysi belgi ishlatilishini belgilaydi.

Misol

cout.fill('.');
cout.width(10);
cout << 5 << "\n";
cout.width(10);
cout << 25 << "\n";
cout.width(10);
cout << 125 << "\n";

O‘zingiz sinab ko‘ring »

Flaglar

setf() va unsetf() metodlari natija formatini o‘zgartiradigan flaglarni o‘rnatish yoki bekor qilish uchun ishlatiladi. Turli xil flaglar mavjud. Ba’zi flaglar biror guruhga tegishli bo‘ladi va bunday holda guruhdagi boshqa flaglar bekor qilinishi uchun setf() metodida flag qaysi guruhga tegishli ekanini ko‘rsatuvchi ikkinchi parametr bo‘lishi kerak.

Flag Sintaksis Tavsif
ios::boolalpha cout.setf(ios::boolalpha) Boolean qiymatlarni "1" va "0" o‘rniga "true" va "false" ko‘rinishida ko‘rsatadi.
ios::showbase cout.setf(ios::showbase) Butun sonlarni o‘n oltilik yoki sakkizlik ko‘rinishda ifodalashda sanoq sistemasini ko‘rsatish uchun sonlar oldiga "0x" yoki "0" qo‘yadi.
ios::showpoint cout.setf(ios::showpoint) Suzuvchi nuqtali sonlarda o‘nlik nuqtani, hatto u kerak bo‘lmasa ham, har doim ko‘rsatadi.
ios::showpos cout.setf(ios::showpoint) Musbat sonlar yonida har doim + belgisini ko‘rsatadi.
ios::uppercase cout.setf(ios::uppercase) O‘n oltilik raqamlarni va ilmiy yozuvdagi "e" harfini katta harfda ifodalaydi.
ios::dec cout.setf(ios::dec, ios::basefield) Butun sonlarni o‘nlik raqamlar bilan ifodalaydi. ios::basefield guruhiga tegishli.
ios::hex cout.setf(ios::hex, ios::basefield) Butun sonlarni o‘n oltilik raqamlar bilan ifodalaydi. ios::basefield guruhiga tegishli.
ios::oct cout.setf(ios::oct, ios::basefield) Butun sonlarni sakkizlik raqamlar bilan ifodalaydi. ios::basefield guruhiga tegishli.
ios::fixed cout.setf(ios::fixed, ios::floatfield) Suzuvchi nuqtali sonlarni kasr qismidagi raqamlar soni qat’iy belgilangan holda ifodalaydi. Kasr qismidagi raqamlar sonini cout.precision() metodi yordamida belgilash mumkin. ios::floatfield guruhiga tegishli.
ios::scientific cout.setf(ios::scientific, ios::floatfield) Suzuvchi nuqtali sonlarni ilmiy yozuvda ifodalaydi. Kasr qismidagi raqamlar sonini cout.precision() metodi yordamida belgilash mumkin. ios::floatfield guruhiga tegishli.
ios::internal cout.setf(ios::internal, ios::adjustfield) Agar kenglik belgilangan bo‘lsa, sonlarda ishora chapga, qiymat esa o‘ngga tekislanadi, boshqa ma’lumot tiplarida esa natija o‘ngga tekislanadi. ios::adjustfield guruhiga tegishli.
ios::left cout.setf(ios::left, ios::adjustfield) Kenglik belgilangan bo‘lsa, natijani chapga tekislaydi. ios::adjustfield guruhiga tegishli.
ios::right cout.setf(ios::right, ios::adjustfield) Kenglik belgilangan bo‘lsa, natijani o‘ngga tekislaydi. ios::adjustfield guruhiga tegishli.

Misol

Natija qanday formatlanishini o‘zgartirish uchun flaglardan foydalaning:

// Booleans
cout << "Booleans\n";
cout << false << "\n";
cout.setf(ios::boolalpha);
cout << false << "\n";

// Hexadecimal and octal numbers
cout << "\nHexadecimal and octal numbers\n";
int myInt = 14;
cout << myInt << "\n";
cout.setf(ios::hex, ios::basefield);
cout << myInt << "\n";
cout.setf(ios::oct, ios::basefield);
cout << myInt << "\n";
cout.setf(ios::showbase);
cout.setf(ios::uppercase);
cout.setf(ios::hex, ios::basefield);
cout << myInt << "\n";
cout.setf(ios::oct, ios::basefield);
cout << myInt << "\n";
cout.setf(ios::dec, ios::basefield);

// Floating point numbers
cout << "\nFloating point numbers\n";
float myFloat = 19.99;
cout << myFloat << "\n";
cout.setf(ios::fixed, ios::floatfield);
cout << myFloat << "\n";
cout.setf(ios::scientific, ios::floatfield);
cout << myFloat << "\n";
cout.unsetf(ios::floatfield);
cout.setf(ios::showpos);
cout.setf(ios::showpoint);
cout << 12345.0 << "\n";

// Alignment
cout << "\nAlignment\n";
cout.setf(ios::left, ios::adjustfield);
cout << setw(10) << "Left" << "\n";
cout.setf(ios::right, ios::adjustfield);
cout << setw(10) << "Right" << "\n";
cout.setf(ios::internal, ios::adjustfield);
cout << setw(10) << 12345.0 << " (Internal)\n";

O‘zingiz sinab ko‘ring »


❮ iostream obyektlari

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!