printf()
C stdio printf() funksiyasi
Ta’rif va qo‘llanilishi
printf() funksiyasi formatlangan stringni konsolga chiqaradi.
printf() funksiyasi <stdio.h> sarlavha faylida aniqlangan.
Eslatma: Aniqrog‘i, u stdout ko‘rsatgan joyga yozadi. Bu odatda konsol bo‘ladi, lekin uni fayl yoki boshqa joyga yo‘naltirib sozlash mumkin.
Format spetsifikatorlari
format stringi funksiyaga uzatilgan qo‘shimcha argumentlarni qayerda va qanday ifodalashni tavsiflovchi format spetsifikatorlarini o‘z ichiga olishi mumkin.
Format spetsifikatorlari %[flags][width][.precision][length]specifier ko‘rinishiga ega. [Kvadrat qavslar] ichidagi komponentlar ixtiyoriy.
Har bir komponentning izohi:
flags- Ixtiyoriy. Quyidagi belgilardan istalganidan iborat ketma-ketlik:-- To‘ldiruvchi bo‘sh joylarni chap tomonga emas, o‘ng tomonga qo‘shib, natijani chapga tekislaydi.#- Konversiya turiga qarab formatlangan ma’lumotning muqobil ko‘rinishini ko‘rsatadi.+- Musbat sonlar oldiga har doim "+" belgisi qo‘yilishini ta’minlaydi.- (Bo‘sh joy belgisi) Musbat sonlar oldiga bo‘sh joy qo‘yadi; bu asosan ularning raqamlari manfiy sonlarning raqamlari bilan bir qatorda tekis turishi uchun kerak.0- Sonlarni chap tomondan nollar bilan to‘ldiradi.
width- Ixtiyoriy. Natija egallashi kerak bo‘lgan eng kam belgilar sonini belgilovchi butun son. Zarur bo‘lsa, shu songa yetkazish uchun chap tomonga,-flagi ishlatilsa esa o‘ng tomonga bo‘sh joylar qo‘shiladi. Agar*yulduzcha belgisi ishlatilsa, kenglik ifodalanayotgan argumentdan oldingi argument orqali beriladi..precision- Ixtiyoriy..belgisi va undan keyin keladigan, formatlangan ma’lumotda kasr qismidan nechta raqam ko‘rsatilishini bildiruvchi butun son.length- Ixtiyoriy. Argumentning kutilayotgan ma’lumot tipini o‘zgartiruvchi belgilar ketma-ketligi. U quyidagilardan biri bo‘lishi mumkin:hh- Butun sonlar uchunchartipi kutiladi.h- Butun sonlar uchunshort inttipi kutiladi.l- Butun sonlar uchunlong inttipi kutiladi.
Belgilar uchunwint_ttipi kutiladi.
Stringlar uchunwchar_t*tipi kutiladi.ll- Butun sonlar uchunlong long inttipi kutiladi.j- Butun sonlar uchunintmax_tyokiuintmax_ttipi kutiladi.z- Butun sonlar uchunsize_ttipi kutiladi.t- Butun sonlar uchunptrdiff_ttipi kutiladi.L- Suzuvchi nuqtali sonlar uchunlong doubletipi kutiladi.
specifier- Majburiy. Argument ma’lumotlari qanday ifodalanishi kerakligini bildiruvchi belgi. Mumkin bo‘lgan belgilar ro‘yxati quyidagi jadvalda keltirilgan.
Spetsifikatorlar ro‘yxati
| Belgi | Spetsifikator | Tavsif |
|---|---|---|
d yoki i |
O‘nlik butun son | Butun sonni o‘nlik butun son sifatida ifodalaydi. |
u |
Ishorasiz o‘nlik butun son | Butun sonni ishorasiz o‘nlik butun son sifatida ifodalaydi. |
o |
Sakkizlik butun son | Butun sonni sakkizlik butun son sifatida ifodalaydi. "#" flagi son oldiga "0" qo‘yadi. |
x yoki X |
O‘n oltilik butun son | Butun sonni o‘n oltilik butun son sifatida ifodalaydi. "#" flagi son oldiga "0x" qo‘yadi. Agar "X" ishlatilsa, A dan F gacha bo‘lgan raqamlar va X harfi katta harflarda ko‘rsatiladi. |
f yoki F |
Suzuvchi nuqtali son | Suzuvchi nuqtali sonni ifodalaydi. Agar "F" ishlatilsa, harflar ("nan" kabi qiymatlardagi) katta harflarda ifodalanadi. "#" flagi kasr raqamlari bo‘lmasa ham o‘nlik nuqtani majburan ko‘rsatadi. |
e yoki E |
Ilmiy yozuv | Suzuvchi nuqtali sonni ilmiy yozuvda ifodalaydi. Agar "E" ishlatilsa, harflar katta harflarda ifodalanadi. "#" flagi kasr raqamlari bo‘lmasa ham o‘nlik nuqtani majburan ko‘rsatadi. |
g yoki G |
Umumiy son | Suzuvchi nuqtali son uchun f va e orasidan eng qisqa ko‘rinishni ishlatadi. Agar "G" ishlatilsa, buning o‘rniga F va E orasidan tanlaydi. |
a yoki A |
O‘n oltilik suzuvchi nuqtali son | Suzuvchi nuqtali sonning ichki ko‘rinishini o‘n oltilik raqamlar bilan ko‘rsatadi. Agar "A" ishlatilsa, raqamlar katta harflarda ifodalanadi. |
c |
Belgi | Belgini ifodalaydi. Agar argument butun son bo‘lsa, shu butun son ko‘rsatgan ASCII qiymatiga mos belgini ifodalaydi. |
s |
String | Stringni ifodalaydi. |
p |
Ko‘rsatkich | Ko‘rsatkichning xotira manzilini, odatda o‘n oltilik raqamlar bilan ifodalaydi. |
n |
Hech narsa chiqarilmaydi | Shu paytgacha chop etilgan belgilar soni argumentga yoziladi. Argument butun songa ko‘rsatkich bo‘lishi kerak. |
% |
Foiz belgisi | Oddiy "%" belgisini ifodalaydi. |
Sintaksis
printf(const char * format, arg1, arg2...);
Parametr qiymatlari
| Parametr | Tavsif |
|---|---|
| format | Majburiy. Faylga yoziladigan ma’lumotlar formatini ifodalovchi string. |
| arg1, arg2... | Ixtiyoriy. Istalgan miqdordagi qo‘shimcha argumentlar; ularning qiymatlari format argumentidagi spetsifikatorlar yordamida formatlanib, konsolga chiqarilishi mumkin. |
Texnik tafsilotlar
| Qaytaradi: | Chop etilgan belgilar sonini ifodalovchi int qiymat. Xato yuz bergan bo‘lsa, manfiy son qaytaradi. |
|---|
Ko‘proq misollar
Misol
Turli tipdagi butun sonlarni ifodalang:
char var1 = 102;
short int var2 = 2024;
int var3 = 95;
long int var4 = 212;
long long int var5 = 1200L;
printf("%hhd %hd %d %ld %lld", var1, var2, var3, var4, var5);
O‘zingiz sinab ko‘ring »
Misol
Butun sonni turli usullarda ifodalang:
int value = 1024;
printf( "%d \n", value); // Integer
printf( "%o \n", value); // Octal
printf( "%x \n", value); // Hexadecimal
printf("%#o \n", value); // Octal with "0" prefix
printf("%#X \n", value); // Uppercase hexadecimal with "0X" prefix
O‘zingiz sinab ko‘ring »
Misol
Suzuvchi nuqtali sonni turli usullarda ifodalang:
float myFloat = 19.99;
printf("%f \n", myFloat); // Floating point
printf("%e \n", myFloat); // Scientific
printf("%g \n", myFloat); // Optimal
printf("%.2f \n", myFloat); // 2 decimal digits
printf("%8.2f \n", myFloat); // 8 characters wide and 2 decimal digits
printf("%08.2f \n", myFloat); // zero-padded 8 characters wide and 2 decimal digits
O‘zingiz sinab ko‘ring »
Misol
String uzunligini o‘lchash uchun %n spetsifikatoridan foydalaning:
// Reserve 20 bytes of memory for a string
char myString[20] = "Hello World!\0";
int memorySize = sizeof(myString);
int stringSize;
// Print the string and use %n to measure it
printf("%s%n\n", myString, &stringSize);
// Print the size of the string
printf("Memory size: %d\n", memorySize);
printf("String size: %d\n", stringSize);
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
