Špecifikátor formátu je reťazec používaný vo formátovaných funkciách vstupu a výstupu. Formátovací reťazec určuje formát vstupu a výstupu. Formátovací reťazec vždy začína znakom '%'.
Bežne používané špecifikátory formátu vo funkcii printf() sú:
chyba: nepodarilo sa nájsť alebo načítať hlavnú triedu
Špecifikátor formátu | Popis |
---|---|
%d alebo %i | Používa sa na vytlačenie hodnoty celého čísla so znamienkom, kde celé číslo so znamienkom znamená, že premenná môže obsahovať kladné aj záporné hodnoty. |
%in | Používa sa na tlač celočíselnej hodnoty bez znamienka, pričom celé číslo bez znamienka znamená, že premenná môže obsahovať iba kladnú hodnotu. |
%O | Používa sa na tlač osmičkového celého čísla bez znamienka, kde osmičková hodnota vždy začína hodnotou 0. |
%X | Používa sa na tlač hexadecimálneho celého čísla bez znamienka, kde hexadecimálna hodnota vždy začína hodnotou 0x. V tomto sú abecedné znaky vytlačené malými písmenami ako a, b, c atď. |
%X | Používa sa na tlač hexadecimálneho celého čísla bez znamienka, ale %X vytlačí abecedné znaky veľkými písmenami, ako napríklad A, B, C atď. |
%f | Používa sa na tlač hodnôt s pohyblivou desatinnou čiarkou. V predvolenom nastavení vytlačí 6 hodnôt za '.'. |
% a a | Používa sa na vedeckú notáciu. Je tiež známy ako Mantisa alebo Exponent. |
%g | Používa sa na tlač hodnôt s pohyblivou desatinnou čiarkou a používa pevnú presnosť, t. j. hodnota za desatinnou čiarkou na vstupe by bola presne rovnaká ako hodnota na výstupe. |
%p | Používa sa na tlač adresy v hexadecimálnom tvare. |
%c | Používa sa na vytlačenie nepodpísaného znaku. |
%s | Používa sa na tlač reťazcov. |
%ld | Používa sa na tlač celočíselnej hodnoty s dlhým znamienkom. |
Pozrime sa podrobne na špecifikátory formátu prostredníctvom príkladu.
int main() { int b=6; int c=8; printf('Value of b is:%d', b); printf(' Value of c is:%d',c); return 0; }
Vo vyššie uvedenom kóde tlačíme celočíselnú hodnotu b a c pomocou špecifikátora %d.
Výkon
int main() { int b=10; int c= -10; printf('Value of b is:%u', b); printf(' Value of c is:%u',c); return 0; }
Vo vyššie uvedenom programe zobrazujeme hodnotu b a c pomocou špecifikátora formátu bez znamienka, t.j. %u. Hodnota b je kladná, takže špecifikátor %u vypíše presnú hodnotu b, ale nevypíše hodnotu c, pretože c obsahuje zápornú hodnotu.
Výkon
int main() { int a=0100; printf('Octal value of a is: %o', a); printf(' Integer value of a is: %d',a); return 0; }
Vo vyššie uvedenom kóde zobrazujeme osmičkovú hodnotu a celočíselnú hodnotu a.
Výkon
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; }
Vo vyššie uvedenom kóde y obsahuje hexadecimálnu hodnotu 'A'. Šestnástkovú hodnotu y zobrazujeme v dvoch formátoch. Na tlač hexadecimálnej hodnoty používame %x a %X, kde %x zobrazuje hodnotu malými písmenami, t.j. 'a' a %X zobrazuje hodnotu veľkým písmenom, t.j. 'A'.
Výkon
int main() { float y=3.4; printf('Floating point value of y is: %f', y); return 0; }
Vyššie uvedený kód vypíše plávajúcu hodnotu y.
Výkon
int main() { float y=3; printf('Exponential value of y is: %e', y); return 0; }
Výkon
int main() { float y=3; printf('Exponential value of y is: %E', y); return 0; }
Výkon
int main() { float y=3.8; printf('Float value of y is: %g', y); return 0; }
Vo vyššie uvedenom kóde zobrazujeme plávajúcu hodnotu y pomocou špecifikátora %g. Špecifikátor %g zobrazuje výstup rovnaký ako vstup s rovnakou presnosťou.
Výkon
int main() { int y=5; printf('Address value of y in hexadecimal form is: %p', &y); return 0; }
Výkon
odovzdať reťazec do int java
int main() { char a='c'; printf('Value of a is: %c', a); return 0; }
Výkon
int main() { printf('%s', 'javaTpoint'); return 0; }
Výkon
Špecifikátor minimálnej šírky poľa
Predpokladajme, že chceme zobraziť výstup, ktorý zaberá minimálny počet miest na obrazovke. Môžete to dosiahnuť zobrazením celého čísla za znakom percenta špecifikátora formátu.
int main() { int x=900; printf('%8d', x); printf(' %-8d',x); return 0; }
Vo vyššie uvedenom programe špecifikátor %8d zobrazuje hodnotu po 8 medzerách, zatiaľ čo špecifikátor %-8d zarovná hodnotu doľava.
Výkon
Teraz uvidíme, ako vyplniť prázdne miesta. Je to zobrazené v nižšie uvedenom kóde:
int main() { int x=12; printf('%08d', x); return 0; }
Vo vyššie uvedenom programe %08d znamená, že prázdne miesto je vyplnené nulami.
Výkon
Určenie presnosti
Presnosť môžeme určiť pomocou '.' Operátor (bodka), za ktorým nasleduje celé číslo a špecifikátor formátu.
int main() { float x=12.2; printf('%.2f', x); return 0; }
Výkon