logo

Specifikator C formata

Specifikator formata je niz koji se koristi u funkcijama formatiranog ulaza i izlaza. Niz formata određuje format ulaza i izlaza. Niz formatiranja uvijek počinje znakom '%'.

Najčešće korišteni specifikatori formata u funkciji printf() su:

Specifikator formata Opis
%d ili %i Koristi se za ispis vrijednosti cijelog broja s predznakom gdje cijeli broj s predznakom znači da varijabla može sadržavati i pozitivne i negativne vrijednosti.
%u Koristi se za ispis vrijednosti cijelog broja bez predznaka gdje cijeli broj bez predznaka znači da varijabla može sadržavati samo pozitivnu vrijednost.
%O Koristi se za ispis oktalnog cijelog broja bez predznaka gdje vrijednost oktalnog cijelog broja uvijek počinje s vrijednošću 0.
%x Koristi se za ispis heksadecimalnog nepredznačenog cijelog broja gdje vrijednost heksadecimalnog cijelog broja uvijek počinje s vrijednošću 0x. U njemu se abecedni znakovi ispisuju malim slovima kao što su a, b, c itd.
%X Koristi se za ispis heksadecimalnog nepredznačenog cijelog broja, ali %X ispisuje abecedne znakove velikim slovima kao što su A, B, C itd.
%f Koristi se za ispis decimalnih vrijednosti s pomičnim zarezom. Prema zadanim postavkama ispisuje 6 vrijednosti nakon '.'.
%i i Koristi se za znanstvenu notaciju. Također je poznata kao mantisa ili eksponent.
%g Koristi se za ispis decimalnih vrijednosti s pomičnim zarezom i koristi fiksnu preciznost, tj. vrijednost nakon decimalnog broja na ulazu bila bi potpuno ista kao vrijednost na izlazu.
%p Koristi se za ispis adrese u heksadecimalnom obliku.
%c Koristi se za ispis nepotpisanog znaka.
%s Koristi se za ispis nizova.
%ld Koristi se za ispis vrijednosti cijelog broja s dugim predznakom.

Razmotrimo detaljno specifikatore formata kroz primjer.

    %d
 int main() { int b=6; int c=8; printf('Value of b is:%d', b); printf('
Value of c is:%d',c); return 0; } 

U gornjem kodu ispisujemo cjelobrojnu vrijednost b i c pomoću specifikatora %d.

Izlaz

Specifikator C formata
    %u
 int main() { int b=10; int c= -10; printf('Value of b is:%u', b); printf('
Value of c is:%u',c); return 0; } 

U gornjem programu, prikazujemo vrijednost b i c pomoću nepredpisanog specifikatora formata, tj. %u. Vrijednost b je pozitivna, tako da %u specifikator ispisuje točnu vrijednost b, ali ne ispisuje vrijednost c jer c sadrži negativnu vrijednost.

Izlaz

Specifikator C formata
    %O
 int main() { int a=0100; printf('Octal value of a is: %o', a); printf('
Integer value of a is: %d',a); return 0; } 

U gornjem kodu prikazujemo oktalnu vrijednost i cjelobrojnu vrijednost a.

Izlaz

css za prelamanje teksta
Specifikator C formata
    %x i %X
 int main() { int y=0xA; printf('Hexadecimal value of y is: %x', y); printf('
Hexadecimal value of y is: %X',y); printf('
Integer value of y is: %d',y); return 0; } 

U gornjem kodu, y sadrži heksadecimalnu vrijednost 'A'. Heksadecimalnu vrijednost y prikazujemo u dva formata. Koristimo %x i %X za ispis heksadecimalne vrijednosti gdje %x prikazuje vrijednost malim slovima, tj. 'a', a %X prikazuje vrijednost velikim slovima, tj. 'A'.

Izlaz

Specifikator C formata
    %f
 int main() { float y=3.4; printf('Floating point value of y is: %f', y); return 0; } 

Gornji kod ispisuje plutajuću vrijednost y.

Izlaz

Specifikator C formata
    %To je
 int main() { float y=3; printf('Exponential value of y is: %e', y); return 0; } 

Izlaz

Specifikator C formata
    %I
 int main() { float y=3; printf('Exponential value of y is: %E', y); return 0; } 

Izlaz

Specifikator C formata
    %g
 int main() { float y=3.8; printf('Float value of y is: %g', y); return 0; } 

U gornjem kodu, prikazujemo plutajuću vrijednost y pomoću %g specifikacije. Specifikator %g prikazuje izlaz kao i ulaz s istom preciznošću.

Izlaz

Specifikator C formata
    %p
 int main() { int y=5; printf('Address value of y in hexadecimal form is: %p', &y); return 0; } 

Izlaz

Specifikator C formata
    %c
 int main() { char a='c'; printf('Value of a is: %c', a); return 0; } 

Izlaz

Specifikator C formata
    %s
 int main() { printf('%s', 'javaTpoint'); return 0; } 

Izlaz

Specifikator C formata

Specifikator minimalne širine polja

Pretpostavimo da želimo prikazati izlaz koji zauzima minimalan broj mjesta na ekranu. To možete postići prikazivanjem cijelog broja nakon znaka postotka specifikatora formata.

 int main() { int x=900; printf('%8d', x); printf('
%-8d',x); return 0; } 

U gornjem programu %8d specifikator prikazuje vrijednost nakon 8 razmaka dok će %-8d specifikator vrijednost poravnati lijevo.

Izlaz

Specifikator C formata

Sada ćemo vidjeti kako popuniti prazne prostore. To je prikazano u donjem kodu:

 int main() { int x=12; printf('%08d', x); return 0; } 

U gornjem programu, %08d znači da je prazan prostor ispunjen nulama.

Izlaz

Specifikator C formata

Određivanje preciznosti

Preciznost možemo odrediti pomoću '.' Operator (točka) nakon kojeg slijedi cijeli broj i specifikator formata.

 int main() { float x=12.2; printf('%.2f', x); return 0; } 

Izlaz

Specifikator C formata