Спецификатор формата је стринг који се користи у форматираним улазним и излазним функцијама. Низ формата одређује формат улаза и излаза. Низ формата увек почиње знаком '%'.
Уобичајени спецификацији формата у функцији принтф() су:
Спецификатор формата | Опис |
---|---|
%д или %и | Користи се за штампање целобројне вредности са предзнаком где цели број са предзнаком значи да променљива може да садржи и позитивне и негативне вредности. |
%ин | Користи се за штампање целобројне вредности без предзнака где цели број без предзнака значи да променљива може да садржи само позитивну вредност. |
%О | Користи се за штампање окталног неозначеног целог броја где октална целобројна вредност увек почиње са вредношћу 0. |
%Икс | Користи се за штампање хексадецималног целог броја без предзнака где хексадецимална целобројна вредност увек почиње са вредношћу 0к. У овом случају, абецедни знакови се штампају малим словима као што су а, б, ц, итд. |
%ИКС | Користи се за штампање хексадецималног неозначеног целог броја, али %Кс штампа абецедне знакове великим словима као што су А, Б, Ц, итд. |
%ф | Користи се за штампање децималних вредности са помичним зарезом. Подразумевано, штампа 6 вредности после '.'. |
%и и | Користи се за научну нотацију. Такође је познат као Мантиса или Експонент. |
%г | Користи се за штампање децималних вредности са покретним зарезом и користи фиксну прецизност, тј. вредност после децимале на улазу би била потпуно иста као и вредност на излазу. |
%п | Користи се за штампање адресе у хексадецималном облику. |
%ц | Користи се за штампање непотписаног карактера. |
%с | Користи се за штампање низова. |
%лд | Користи се за штампање целобројне вредности са дугим предзнаком. |
Хајде да детаљно разумемо спецификације формата кроз пример.
int main() { int b=6; int c=8; printf('Value of b is:%d', b); printf(' Value of c is:%d',c); return 0; }
У горњем коду, штампамо целобројну вредност б и ц помоћу спецификације %д.
Излаз
int main() { int b=10; int c= -10; printf('Value of b is:%u', b); printf(' Value of c is:%u',c); return 0; }
У горњем програму приказујемо вредност б и ц коришћењем неозначеног специфицатора формата, тј. %у. Вредност б је позитивна, тако да спецификација %у штампа тачну вредност б, али не штампа вредност ц пошто ц садржи негативну вредност.
Излаз
int main() { int a=0100; printf('Octal value of a is: %o', a); printf(' Integer value of a is: %d',a); return 0; }
У горњем коду приказујемо окталну вредност и целобројну вредност а.
Излаз
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; }
У горњем коду, и садржи хексадецималну вредност 'А'. Хексадецималну вредност и приказујемо у два формата. Користимо %к и %Кс за штампање хексадецималне вредности где %к приказује вредност малим словима, тј. 'а' и %Кс приказује вредност великим словом, тј. 'А'.
Излаз
int main() { float y=3.4; printf('Floating point value of y is: %f', y); return 0; }
Горњи код штампа плутајућу вредност и.
Излаз
int main() { float y=3; printf('Exponential value of y is: %e', y); return 0; }
Излаз
int main() { float y=3; printf('Exponential value of y is: %E', y); return 0; }
Излаз
int main() { float y=3.8; printf('Float value of y is: %g', y); return 0; }
У горњем коду, приказујемо плутајућу вредност и помоћу %г спецификације. Спецификатор %г приказује излаз исти као и улаз са истом прецизношћу.
Излаз
int main() { int y=5; printf('Address value of y in hexadecimal form is: %p', &y); return 0; }
Излаз
int main() { char a='c'; printf('Value of a is: %c', a); return 0; }
Излаз
int main() { printf('%s', 'javaTpoint'); return 0; }
Излаз
Спецификатор минималне ширине поља
Претпоставимо да желимо да прикажемо излаз који заузима минималан број простора на екрану. То можете постићи тако што ћете приказати цео број иза предзнака процента спецификације формата.
int main() { int x=900; printf('%8d', x); printf(' %-8d',x); return 0; }
У горњем програму, спецификација %8д приказује вредност након 8 размака, док ће спецификација %-8д направити вредност поравнату лево.
руковање стринговима у Ц++
Излаз
Сада ћемо видети како да попунимо празна места. То је приказано у коду испод:
int main() { int x=12; printf('%08d', x); return 0; }
У горњем програму, %08д значи да је празан простор попуњен нулама.
Излаз
Специфиинг Прецисион
Можемо да одредимо прецизност коришћењем '.' (Тачка) оператор иза којег следи цео број и спецификација формата.
int main() { float x=12.2; printf('%.2f', x); return 0; }
Излаз