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.
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
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
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
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
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
int main() { float y=3; printf('Exponential value of y is: %e', y); return 0; }
Izlaz
int main() { float y=3; printf('Exponential value of y is: %E', y); return 0; }
Izlaz
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
int main() { int y=5; printf('Address value of y in hexadecimal form is: %p', &y); return 0; }
Izlaz
int main() { char a='c'; printf('Value of a is: %c', a); return 0; }
Izlaz
int main() { printf('%s', 'javaTpoint'); return 0; }
Izlaz
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
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
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