Спецификаторът Format е низ, използван във функциите за форматиран вход и изход. Форматиращият низ определя формата на входа и изхода. Форматиращият низ винаги започва със знака '%'.
Често използваните спецификатори на формата във функцията printf() са:
Спецификатор на формат | Описание |
---|---|
%d или %i | Използва се за отпечатване на стойността на цяло число със знак, където цяло число със знак означава, че променливата може да съдържа както положителни, така и отрицателни стойности. |
%in | Използва се за отпечатване на стойността на цяло число без знак, където цяло число без знак означава, че променливата може да съдържа само положителна стойност. |
%O | Използва се за отпечатване на осмично цяло число без знак, където стойността на осмично цяло число винаги започва със стойност 0. |
%х | Използва се за отпечатване на шестнадесетично цяло число без знак, където стойността на шестнадесетично цяло число винаги започва със стойност 0x. При него азбучните знаци се отпечатват с малки букви като a, b, c и т.н. |
%Х | Използва се за отпечатване на шестнадесетично цяло число без знак, но %X отпечатва азбучните знаци с главни букви, като A, B, C и т.н. |
%f | Използва се за отпечатване на десетичните стойности с плаваща запетая. По подразбиране той отпечатва 6-те стойности след '.'. |
% и и | Използва се за научна нотация. Известен е още като мантиса или експонент. |
%g | Използва се за отпечатване на десетичните стойности с плаваща запетая и използва фиксираната точност, т.е. стойността след десетичната запетая във входа ще бъде точно същата като стойността в изхода. |
%p | Използва се за отпечатване на адреса в шестнадесетична форма. |
%° С | Използва се за отпечатване на неподписан знак. |
%с | Използва се за отпечатване на низовете. |
%ld | Използва се за отпечатване на целочислената стойност с дълъг знак. |
Нека разберем подробно спецификаторите на формата чрез пример.
int main() { int b=6; int c=8; printf('Value of b is:%d', b); printf(' Value of c is:%d',c); return 0; }
В горния код ние отпечатваме целочислената стойност на b и c, като използваме спецификатора %d.
Изход
int main() { int b=10; int c= -10; printf('Value of b is:%u', b); printf(' Value of c is:%u',c); return 0; }
В горната програма ние показваме стойността на b и c, като използваме спецификатор на неподписан формат, т.е. %u. Стойността на b е положителна, така че %u спецификаторът отпечатва точната стойност на b, но не отпечатва стойността на c, тъй като c съдържа отрицателната стойност.
Изход
int main() { int a=0100; printf('Octal value of a is: %o', a); printf(' Integer value of a is: %d',a); return 0; }
В горния код ние показваме осмичната стойност и целочислената стойност на a.
подчертаване подчертаване
Изход
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; }
В горния код y съдържа шестнадесетичната стойност „A“. Ние показваме шестнадесетичната стойност на y в два формата. Използваме %x и %X, за да отпечатаме шестнадесетичната стойност, където %x показва стойността с малки букви, т.е. 'a', а %X показва стойността с главна буква, т.е. 'A'.
Изход
int main() { float y=3.4; printf('Floating point value of y is: %f', y); return 0; }
Горният код отпечатва плаващата стойност на y.
Изход
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; }
В горния код ние показваме плаващата стойност на y, като използваме %g спецификатор. Спецификаторът %g показва изхода като входа със същата точност.
как да конвертирате от низ към int
Изход
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; }
В горната програма спецификаторът %8d показва стойността след 8 интервала, докато спецификаторът %-8d ще направи стойност подравнена вляво.
Изход
пример за потребителско име
Сега ще видим как да запълним празните места. Показано е в кода по-долу:
int main() { int x=12; printf('%08d', x); return 0; }
В горната програма %08d означава, че празното пространство е запълнено с нули.
Изход
Задаване на точност
Можем да посочим точността с помощта на '.' Оператор (точка), който е последван от цяло число и спецификатор на формат.
int main() { float x=12.2; printf('%.2f', x); return 0; }
Изход