logo

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;> }>

java tuple

>

>

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;> }>

>

kako odstraniti prvi znak v excelu
>

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:

  1. Znak minus (-) označuje levo poravnavo.
  2. Š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.
  3. 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.