logo

Špecifikátory formátu v C

Špecifikátor formátu v C sa používa na informovanie kompilátora o type údajov, ktoré sa majú vytlačiť alebo naskenovať pri vstupných a výstupných operáciách. Vždy začínajú a % a používajú sa vo formátovanom reťazci vo funkciách ako printf(), scanf, sprintf() atď.

Jazyk C poskytuje množstvo špecifikátorov formátu, ktoré sú spojené s rôznymi typmi údajov, ako napríklad %d pre int, %c pre char atď. V tomto článku budeme diskutovať o niektorých bežne používaných špecifikátoroch formátu a o tom, ako ich používať.

Zoznam špecifikátorov formátu v C

Nižšie uvedená tabuľka obsahuje najčastejšie používané špecifikátory formátu v C



Špecifikátor formátu

Popis

%c

Pre typ postavy.

%d

Pre typ celého čísla so znamienkom.

%e alebo %E

Pre vedecký zápis plavákov.

%f

Pre plavákový typ.

%g alebo %G

Pre plavákový typ s aktuálnou presnosťou.

%i

Celé číslo bez znamienka

%ld alebo %li

Dlhé

%lf

Dvojité

%Lf

Dlhé dvojité

%lu

Unsigned int alebo unsigned long

%lli alebo %lld

Dlhé dlhé

%llu

Dlho nepodpísané

%O

Osmičkové znázornenie

%p

Ukazovateľ

%s

Reťazec

%in

Nepodpísaná int

%x alebo %X

Hexadecimálne znázornenie

%n

Netlačí nič

%%

Vytlačí znak %

Príklady špecifikátorov formátu v C

1. Špecifikátor formátu znakov – %c v C

%c je špecifikátor formátu pre char dátový typ v jazyku C. Dá sa použiť pre formátovaný vstup aj formátovaný výstup v jazyku C.

Syntax:

scanf('  %d  ...', ...); printf('  %d  ...', ...);>

Príklad:

C




// C Program to illustrate the %c format specifier.> #include> int> main()> {> >char> c;> >// using %c for character input> >scanf>(>'Enter some character: %c'>, &c);> >// using %c for character output> >printf>(>'The entered character: %c'>, &c);> >return> 0;> }>

>

>

Vstup:

Enter some character: A>

Výkon:

The entered character: A>

2. Špecifikátor formátu celého čísla (podpísaný) – %d v C

Môžeme použiť špecifikátor formátu celého čísla so znamienkom %d vo funkciách scanf() a print() alebo iných funkciách, ktoré na vstup a výstup používajú formátovaný reťazec int Dátový typ.

Syntax:

scanf('%d...', ...); printf('%i...', ...);>

Príklad:

C




Herečka Rubina Dilaik

// C Program to demonstrate the use of %d and %i> #include> // Driver code> int> main()> {> >int> x;> >// taking integer input> >scanf>(>'Enter the two integers: %d'>, &x);> >// printing integer output> >printf>(>'Printed using %%d: %d '>, x);> >printf>(>'Printed using %%i: %3i '>, x);> >return> 0;> }>

>

>

Vstup:

Enter the integer: 45>

Výkon:

Printed using %d: 45 Printed using %i: 45>

3. Špecifikátor formátu celého čísla bez znamienka – %u v C

%u je špecifikátor formátu pre typ údajov typu celé číslo bez znamienka. Ak do %u zadáme zápornú hodnotu celého čísla, prevedie sa celé číslo na jeho prvý doplnok.

Syntax:

printf('  %u  ...', ...); scanf('  %u  ...', ...);>

Príklad: Nasledujúci program C ukazuje, ako používať %u v C.

ako odstrániť prvý znak v programe excel

C




// C Program to illustrate the how to use %u> #include> // driver code> int> main()> {> >unsigned>int> var;> >scanf>(>'Enter an integer: %u'>, &var);> >printf>(>'Entered Unsigned Integer: %u'>, var);> >// trying to print negative value using %u> >printf>(>'Printing -10 using %%u: %u '>, -10);> >return> 0;> }>

>

>

Vstup:

Enter an integer: 25>

Výkon:

Entered unsigned integer: 25 Printing -10 using %u: 4294967286>

4. Špecifikátor formátu s pohyblivou rádovou čiarkou – %f v C

The %f je špecifikátor formátu s pohyblivou rádovou čiarkou v jazyku C, ktorý možno použiť vo formátovanom reťazci na vstup a výstup plavák Dátový typ. Okrem %f môžeme použiť %To je alebo %A špecifikátory formátu na tlač hodnota s pohyblivou rádovou čiarkou v exponenciálnom tvare.

Syntax:

printf('  %f  ...', ...); scanf('  %e  ...', ...); printf('  %E  ...', ...);>

Príklad:

C




// C program to demonstrate the use of %f, %e and %E> #include> // driver code> int> main()> {> >float> a = 12.67;> >printf>(>'Using %%f: %f '>, a);> >printf>(>'Using %%e: %e '>, a);> >printf>(>'Using %%E, %E'>, a);> >return> 0;> }>

>

>

Výkon

Using %f: 12.670000 Using %e: 1.267000e+01 Using %E, 1.267000E+01>

5. Osmičkové číslo bez znamienka pre celé číslo – %o v C

Špecifikátor formátu %o v programe C môžeme použiť na tlač alebo vstup pre osmičkové celé číslo bez znamienka.

Syntax:

printf('  %o  ...', ...); scanf('  %o  ...', ...);>

Príklad:

C




#include> int> main()> {> >int> a = 67;> >printf>(>'%o '>, a);> >return> 0;> }>

>

>

Výkon

103>

6. Hexadecimálne číslo bez znamienka pre celé číslo – %x v C

Špecifikátor formátu %x sa používa vo formátovanom reťazci pre hexadecimálne celé čísla. V tomto prípade budú abecedy v šestnástkových číslach písané malými písmenami. Pre veľké písmená používame namiesto toho %X.

Syntax:

printf('  %x  ...', ...); scanf('  %X  ...', ...);>

Príklad:

C




// C Program to demonstrate the use of %x and %X> #include> int> main()> {> >int> a = 15454;> >printf>(>'%x '>, a);> >printf>(>'%X'>, a);> >return> 0;> }>

>

>

Výkon

3c5e 3C5E>

7. Špecifikátor formátu reťazca – %s v C

%s v C sa používa na tlač reťazcov alebo na prevzatie reťazcov ako vstup.

Syntax:

printf('  %s  ...', ...); scanf('  %s  ...', ...);>

Príklad:

C




// C program to illustrate the use of %s in C> #include> int> main()> {> >char> a[] =>'Hi Geeks'>;> >printf>(>'%s '>, a);> >return> 0;> }>

>

>

Výkon

Hi Geeks>

Príklad: Práca %s s scanf() je trochu odlišná od práce s printf(). Pochopme to pomocou nasledujúceho programu C.

C




výška odsadenia
// C Program to illustrate the working of %s with scanf()> #include> int> main()> {> >char> str[50];> >// taking string as input> >scanf>(>'Enter the String: %s'>, str);> >printf>(>'Entered String: %s'>, str);> >return> 0;> }>

>

>

Vstup

Enter the string: Hi Geeks>

Výkon

Hi>

Ako vidíme, reťazec sa skenuje iba dovtedy, kým sa neobjaví medzera. Používaním sa tomu môžeme vyhnúť sady skenov v C .

8. Špecifikátor formátu adresy – %p v C

Jazyk C tiež poskytuje špecifikátor formátu na tlač adresy/ukazovateľov. Na tlač adries a ukazovateľov v C môžeme použiť %p

Syntax

printf('  %p  ...', ...);>

Príklad:

C




#include> int> main()> {> >int> a = 10;> >printf>(>'The Memory Address of a: %p '>,(>void>*)&a);> >return> 0;> }>

>

>

Výkon

The Memory Address of a: 0x7ffe9645b3fc>

Vstupné a výstupné formátovanie

Jazyk C poskytuje niektoré nástroje, pomocou ktorých môžeme formátovať vstup a výstup. Vo všeobecnosti sa vkladajú medzi znak % a symbol špecifikátora formátu. Niektoré z nich sú nasledovné:

  1. Znamienko mínus (-) označuje zarovnanie vľavo.
  2. Číslo potom % určuje minimálnu šírku poľa, ktoré sa má vytlačiť, ak sú znaky menšie ako veľkosť šírky, zostávajúce miesto je vyplnené medzerou a ak je väčšie, vytlačí sa ako bez skrátenia.
  3. Bodka ( . ) presne oddeľuje šírku poľa.

Presnosť udáva minimálny počet číslic v celom čísle, maximálny počet znakov v reťazci a počet číslic za desatinnou časťou v pohyblivej hodnote.

Príklad formátovania I/O

C




// C Program to demonstrate the formatting methods.> #include> int> main()> {> >char> str[] =>'geeksforgeeks'>;> >printf>(>'%20s '>, str);> >printf>(>'%-20s '>, str);> >printf>(>'%20.5s '>, str);> >printf>(>'%-20.5s '>, str);> >return> 0;> }>

>

>

Výkon

 geeksforgeeks geeksforgeeks geeks geeks>

Časté otázky o špecifikátoroch formátu C

1. Má C špecifikátor formátu pre binárne čísla?

Nie, jazyk C neposkytuje špecifikátor formátu pre binárne čísla.

2. Čo je to formátovaný reťazec?

Vstupné a výstupné funkcie v C berú reťazec ako argument, ktorý rozhoduje o tom, ako sa dáta zobrazia na obrazovke alebo ako sa dáta načítajú do pamäte. Tento reťazec sa nazýva formátovaný reťazec.