printf()

C stdio printf() funksiyasi

❮ C stdio kutubxonasi


Misol

String chiqaring:

printf("Hello World!");
O‘zingiz sinab ko‘ring »

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 uchun char tipi kutiladi.
    • h - Butun sonlar uchun short int tipi kutiladi.
    • l - Butun sonlar uchun long int tipi kutiladi.
      Belgilar uchun wint_t tipi kutiladi.
      Stringlar uchun wchar_t* tipi kutiladi.
    • ll - Butun sonlar uchun long long int tipi kutiladi.
    • j - Butun sonlar uchun intmax_t yoki uintmax_t tipi kutiladi.
    • z - Butun sonlar uchun size_t tipi kutiladi.
    • t - Butun sonlar uchun ptrdiff_t tipi kutiladi.
    • L - Suzuvchi nuqtali sonlar uchun long double tipi 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 »

❮ C stdio kutubxonasi

W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!