Š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é:
- Znamienko mínus (-) označuje zarovnanie vľavo.
- Čí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.
- 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.