Specifikatorji formata v C
Specifikator formata v C se uporablja za sporočanje prevajalniku o vrsti podatkov, ki jih je treba natisniti ali skenirati v vhodnih in izhodnih operacijah. Vedno se začnejo z a % in se uporabljajo v oblikovanem nizu v funkcijah, kot so printf(), scanf, sprintf() itd.
Jezik C ponuja številne specifikatorje formata, ki so povezani z različnimi vrstami podatkov, kot so %d za int, %c za char itd. V tem članku bomo razpravljali o nekaterih pogosto uporabljenih specifikatorjih formata in o tem, kako jih uporabljati.
Seznam specifikatorjev formata v C
Spodnja tabela vsebuje najpogosteje uporabljene specifikatorje formata v C
| Specifikator formata | Opis |
|---|---|
| %c | Za tip znakov. |
| %d | Za predznačeno celoštevilsko vrsto. |
| %e ali %E | Za znanstveno zapisovanje plovcev. |
| %f | Za tip plovca. |
| %g ali %G | Za lebdeči tip s trenutno natančnostjo. |
| %jaz | Celo število brez predznaka |
| %ld ali %li | dolga |
| %lf | Dvojno |
| %Lf | Dolga dvojna |
| %lu | Unsigned int ali unsigned long |
| %lli ali %lld | Dolgo dolgo |
| %llu | Nepodpisano dolgo dolgo |
| %O | Oktalna predstavitev |
| %p | Kazalec |
| %s | Vrvica |
| %in | Nepodpisano int |
| %x ali %X | Šestnajstiška predstavitev |
| %n | Nič ne natisne |
| %% | Natisne znak % |
Primeri specifikatorjev formata v C
1. Specifikator formata znakov – %c v C
%c je specifikator formata za char podatkovni tip v jeziku C. Uporablja se lahko za formatiran vnos in formatiran izhod v jeziku C.
Sintaksa:
scanf(' %d ...', ...); printf(' %d ...', ...); primer:
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;> }> |
Vnos:
Enter some character: A
Izhod:
The entered character: A
2. Specifikator formata celega števila (predznačen) – %d v C
Uporabimo lahko specifikator formata celega števila s predznakom %d v funkcijah scanf() in print() ali drugih funkcijah, ki uporabljajo oblikovani niz za vnos in izhod int tip podatkov.
Sintaksa:
scanf('%d...', ...); printf('%i...', ...); primer:
C
// 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;> }> |
Vnos:
Enter the integer: 45
Izhod:
Printed using %d: 45 Printed using %i: 45
3. Specifikator formata nepredznačenega celega števila – %u v C
%u je specifikator formata za nepredznačeni celoštevilski podatkovni tip. Če za %u podamo vrednost negativnega celega števila, pretvori celo število v njegov prvi komplement.
Sintaksa:
printf(' %u ...', ...); scanf(' %u ...', ...); primer: Naslednji program C prikazuje, kako uporabljati %u v C.
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;> }> |
Vnos:
Enter an integer: 25
Izhod:
Entered unsigned integer: 25 Printing -10 using %u: 4294967286
4. Specifikator formata s plavajočo vejico – %f v C
The %f je specifikator oblike s plavajočo vejico v jeziku C, ki se lahko uporablja znotraj oblikovanega niza za vnos in izhod lebdi tip podatkov. Poleg %f lahko uporabimo %Je oz % IN specifikatorji formata za tiskanje vrednost s plavajočo vejico v eksponentni obliki.
Sintaksa:
printf(' %f ...', ...); scanf(' %e ...', ...); printf(' %E ...', ...); primer:
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;> }> |
Izhod
Using %f: 12.670000 Using %e: 1.267000e+01 Using %E, 1.267000E+01
5. Osmiško število brez predznaka za celo število – %o v C
Za tiskanje ali sprejemanje vnosa nepredznačenega osmiškega celega števila lahko uporabimo specifikator formata %o v programu C.
Sintaksa:
printf(' %o ...', ...); scanf(' %o ...', ...); primer:
C
#include> int> main()> {> > int> a = 67;> > printf> (> '%o
'> , a);> > return> 0;> }> |
Izhod
103
6. Nepredznačeno šestnajstiško za celo število – %x v C
Specifikator formata %x se uporablja v oblikovanem nizu za šestnajstiška cela števila. V tem primeru bodo abecede v šestnajstiških številkah napisane z malimi črkami. Za velike abecedne številke namesto tega uporabljamo %X.
Sintaksa:
printf(' %x ...', ...); scanf(' %X ...', ...); primer:
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;> }> |
Izhod
3c5e 3C5E
7. Specifikator formata niza – %s v C
%s v C se uporablja za tiskanje nizov ali sprejemanje nizov kot vhodnih podatkov.
Sintaksa:
printf(' %s ...', ...); scanf(' %s ...', ...); primer:
C
// C program to illustrate the use of %s in C> #include> int> main()> {> > char> a[] => 'Hi Geeks'> ;> > printf> (> '%s
'> , a);> > return> 0;> }> |
Izhod
Hi Geeks
primer: Delovanje %s s scanf() se nekoliko razlikuje od njegovega delovanja s printf(). Razumejmo to s pomočjo naslednjega programa C.
C
// 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;> }> |
Vnos
Enter the string: Hi Geeks
Izhod
Hi
Kot lahko vidimo, se niz skenira le, dokler ne naletimo na presledek. Temu se lahko izognemo z uporabo pregledi v C .
8. Specifikator oblike naslova – %p v C
Jezik C ponuja tudi specifikator formata za tiskanje naslovov/kazalcev. %p lahko uporabimo za tiskanje naslovov in kazalcev v C
Sintaksa
printf(' %p ...', ...); primer:
C
#include> int> main()> {> > int> a = 10;> > printf> (> 'The Memory Address of a: %p
'> ,(> void> *)&a);> > return> 0;> }> |
Izhod
The Memory Address of a: 0x7ffe9645b3fc
Vhodno in izhodno oblikovanje
Jezik C ponuja nekaj orodij, s katerimi lahko oblikujemo vhod in izhod. Običajno so vstavljeni med znak % in simbol za določitev oblike. Nekateri od njih so naslednji:
- Znak minus (-) označuje levo poravnavo.
- Številka po % določa najmanjšo širino polja, ki se natisne, če so znaki manjši od velikosti širine preostalega prostora, ki je zapolnjen s prostorom, in če je večja, se natisne tako, kot je, brez prirezovanja.
- Simbol pike ( . ) natančno ločuje širino polja.
Natančnost pove najmanjše število števk v celem številu, največje število znakov v nizu in število števk za decimalnim delom v plavajoči vrednosti.
Primer V/I formatiranja
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;> }> |
Izhod
geeksforgeeks geeksforgeeks geeks geeks
Pogosta vprašanja o specifikatorjih formata C
1. Ali ima C specifikator formata za binarna števila?
Ne, jezik C ne nudi specifikatorja formata za binarna števila.
2. Kaj je formatirani niz?
Vhodne in izhodne funkcije v C vzamejo niz kot argument, ki odloča, kako so podatki prikazani na zaslonu ali kako se podatki pridobijo v pomnilnik. Ta niz se imenuje formatirani niz.