A Formátum megadó egy karakterlánc, amelyet a formázott bemeneti és kimeneti funkciókban használnak. A formátum karakterlánc határozza meg a bemenet és a kimenet formátumát. A formátum karakterlánc mindig „%” karakterrel kezdődik.
A printf() függvényben leggyakrabban használt formátummeghatározók a következők:
Formátummeghatározó | Leírás |
---|---|
%d vagy %i | Az előjeles egész érték kinyomtatására szolgál, ahol az előjeles egész azt jelenti, hogy a változó pozitív és negatív értékeket is tartalmazhat. |
%ban ben | Az előjel nélküli egész érték kinyomtatására szolgál, ahol az előjel nélküli egész azt jelenti, hogy a változó csak pozitív értéket tartalmazhat. |
%O | Az oktális előjel nélküli egész szám nyomtatására szolgál, ahol az oktális egész érték mindig 0 értékkel kezdődik. |
%x | A hexadecimális előjel nélküli egész szám nyomtatására szolgál, ahol a hexadecimális egész szám mindig 0x értékkel kezdődik. Ebben az alfabetikus karakterek kis betűkkel vannak nyomtatva, például a, b, c stb. |
%X | A hexadecimális előjel nélküli egész szám kinyomtatására szolgál, de a %X nagybetűvel nyomtatja ki az alfabetikus karaktereket, például A, B, C stb. |
%f | A decimális lebegőpontos értékek nyomtatására szolgál. Alapértelmezés szerint a 6 értéket írja ki a '.' után. |
%ésés | Tudományos jelölésre használják. Más néven Mantissa vagy Exponent. |
%g | A tizedes lebegőpontos értékek kinyomtatására szolgál, és a rögzített pontosságot használja, azaz a tizedesjegy utáni érték pontosan megegyezik a kimenetben lévő értékkel. |
%p | A cím hexadecimális formában történő nyomtatására szolgál. |
%c | Az előjel nélküli karakter kinyomtatására szolgál. |
%s | A karakterláncok kinyomtatására szolgál. |
%ld | A hosszú előjelű egész érték nyomtatására szolgál. |
Nézzük meg részletesen a formátum-specifikációkat egy példán keresztül.
python bájtokat a karakterláncba
int main() { int b=6; int c=8; printf('Value of b is:%d', b); printf(' Value of c is:%d',c); return 0; }
A fenti kódban b és c egész értékét nyomtatjuk ki a %d megadóval.
Kimenet
int main() { int b=10; int c= -10; printf('Value of b is:%u', b); printf(' Value of c is:%u',c); return 0; }
A fenti programban a b és c értékét egy előjel nélküli formátummeghatározóval, azaz %u-val jelenítjük meg. A b értéke pozitív, ezért a %u specifikátor kiírja b pontos értékét, de nem írja ki c értékét, mivel c a negatív értéket tartalmazza.
Kimenet
int main() { int a=0100; printf('Octal value of a is: %o', a); printf(' Integer value of a is: %d',a); return 0; }
A fenti kódban az a oktális értékét és egész értékét jelenítjük meg.
Kimenet
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; }
A fenti kódban y az „A” hexadecimális értéket tartalmazza. Az y hexadecimális értékét két formátumban jelenítjük meg. A %x és %X segítségével kinyomtatjuk a hexadecimális értéket, ahol a %x kis betűkkel, azaz az 'a' és %X nagybetűvel, azaz 'A'-val jeleníti meg az értéket.
Kimenet
int main() { float y=3.4; printf('Floating point value of y is: %f', y); return 0; }
A fenti kód az y lebegő értékét írja ki.
Kimenet
int main() { float y=3; printf('Exponential value of y is: %e', y); return 0; }
Kimenet
java tömb rendezve
int main() { float y=3; printf('Exponential value of y is: %E', y); return 0; }
Kimenet
int main() { float y=3.8; printf('Float value of y is: %g', y); return 0; }
A fenti kódban y lebegő értékét jelenítjük meg a %g megadóval. A %g specifikátor ugyanolyan pontossággal jeleníti meg a kimenetet, mint a bemenetet.
Kimenet
int main() { int y=5; printf('Address value of y in hexadecimal form is: %p', &y); return 0; }
Kimenet
java matek óra
int main() { char a='c'; printf('Value of a is: %c', a); return 0; }
Kimenet
int main() { printf('%s', 'javaTpoint'); return 0; }
Kimenet
Minimális mezőszélesség-meghatározó
Tegyük fel, hogy egy olyan kimenetet szeretnénk megjeleníteni, amely minimális számú helyet foglal el a képernyőn. Ezt úgy érheti el, hogy a formátummeghatározó százalékjele után egész számot jelenít meg.
int main() { int x=900; printf('%8d', x); printf(' %-8d',x); return 0; }
A fenti programban a %8d specifikátor 8 szóköz után jeleníti meg az értéket, míg a %-8d megadó balra igazítja az értéket.
Kimenet
Most meglátjuk, hogyan lehet kitölteni az üres helyeket. Az alábbi kódban látható:
int main() { int x=12; printf('%08d', x); return 0; }
A fenti programban a %08d azt jelenti, hogy az üres hely nullákkal van kitöltve.
Kimenet
1 millió számjegyben
A pontosság megadása
A pontosságot a '.' használatával tudjuk megadni. (Dot) operátor, amelyet egész szám és formátummeghatározó követ.
int main() { float x=12.2; printf('%.2f', x); return 0; }
Kimenet