|
��������
printf, fprintf, sprintf, snprintf, asprintf, vprintf,
vfprintf, vsprintf, vsnprintf, vasprintf - ����� �
��������������� �� �������
���������
#include <stdio.h> int printf (format, val ...) char *format; int fprintf (stream, format, val ...) FILE *stream; char *format; int sprintf (s, format [, val] ...) char *s, *format; int snprintf(char *str, size_tsize, const char *format, ...) int asprintf(char **ret, const char *format, ...) #include <stdarg.h> int vprintf(const char *format, va_list ap) int vfprintf(FILE *stream, const char *format, va_list ap) int vsprintf(char *str, char *format, va_list ap) int vsnprintf(char *str, size_t size, const char *format, va_list ap) int vasprintf(char **ret, const char *format, va_list ap)
��������
������� printf ���������� ������ � ����������� �����
������ stdin. ������� fprintf ���������� ������ � �����
������, �������� ���������� stream. ������� sprintf
���������� ������, ��������������� ������ ��������
(\0), � ������ s; ������������ ������ ������������ �
��������� ������������ ���������� ������ ��� �������.
������ ������� ���������� ����� ���������� �������� (��
������ ������� � ������ sprintf), ��� �������������
�����, ���� ��� ������ ������������ ������.
������ �� ������������� ������� �����������, ����������� � �������� ��������� �������� val ��� ����������� �������, ��������� ���������� format. ������ - ��� ������� ��������, ���������� �� ���� ���� ���������: ������� �������, ������� ������ ���������� � �������� �����, � ������������� ��������������, ������� �� ������� ������������� ����, ��������� ��� �� ������ �� ��������� ��������. ���� ��������� �������� val ������������, ��������� �������������; ���� �� ������� �����, ���������� ������������.
������ ������������ �������������� ���������� �������� %, ����� �������� ��������������� ������������:
������ ������������������ ���� ������ ���� � �������� ����� ���������� ����������. ��� ��������, ��� � �������� ������ ���� (��� ��������) ������������ ����� �������� val �� ������ ����������; ��� ������ �������������� ���������������� ���������� ��������. ���� ��������, �������� ������ ����, ������������, �� ���������, ��� ����� ���� -, � � �������� ������ ���� ������� ���������� �������� ��������. ���� ������������ ��������, �������� ��������, ��� ����������� ������ ����.
����� � �� �����:
- | ������������ ���������� �������������� �� ����� �������. |
---|---|
+ | ������������ ����������� ����� (��� ����� �� ������). |
������ | ���� ������ ������ ���������� �������������� �� ������ ������� �� + � -, �� ����������� ���������� ������������ ��������. ��� ����� ���� + ���������� �������� ����� ������. |
# | ���� ���� ��������, ��� �������� ������������� � "�������������� �����". ��� �������������� c, d, i, s, u ���� ���� �� ����� ��������. ��� �������������� ���� o ��������� ������������ � ����������� ���������, � ��� ����� ������ ����� ���������� ���� �����. ��� �������������� ���� x, X ��������� ��������� ����� ������������ � ��������� 0x ��� 0X. ��� �������������� ���� e, E, f, g, G ��������� ����������� ����������� � ���������� ������, ���� ���� �� ��� ��� ���� (������ ����� � ���� ������ ����������). ��� �������������� g, G �� ����������� ���������� ��������� ���� (��� ������ ��������). |
�������, ������������ ��� ��������������, � �� �����:
d, i, o, u, x, X | ����� ��������� �������� ������������� � ���������� �� ������ (d, i), ����������� ������������ (o), ���������� (u) ��� ����������������� (x, X); ����� abcdef ���������� ����������������� ����� ��� �������������� x, � ABCDEF - ��� �������������� X. �������� ������ ����������� ���������� ���� � ����������� ����������; ���� ��������� ����� ���������� ������� ����������� ����, �� ����� ����������� ���������� ����. �������� �������� �� ��������� ����� 1. ��������� �������������� ���� � ������� ��������� - ������ �������. |
---|---|
f | ��������� �������� ����� float ��� double ������������� � ���������� ����� � ������������ � ���� [-]ddd.ddd, ��� ����� ���� ����� ����� ������������ ���������. ���� �������� �������, �� ���������, ��� ��� ����� 6; ���� �������� ����� ����, ����� �� ����������. |
e, E | ��������� �������� ����� float ��� double ������������� � ���������� ����� � ������������ � ���� [-]d.ddde+/-dd, ��� ����� ������ ��������� ����� ���� �����, � ����� ���� ����� ����� ������������ ���������; �� ��������� �������� ����� 6; ���� �������� ����� ����, ����� �� ����������. ������������ E ���������� �� e ������ ������������ ������� (E ������ e). ������� ������ �������� �� ������� ���� ��� �����. |
g, G | ��������� �������� ����� float ��� double ������������� � ���������� ����� � ������������ ���� � ������� f, ���� � ������� e (��� E, ���� ������ ������������ G); �������� ������������ ������ �������� ����. ��� ����������� ������� �� �������� ���������: ��� e ������������ ������ � ��� ������, ���� ������� ������ -4 ��� ������ �������� ��������. ��������� ���������� ���� �����������; ���������� ����� ����������, ������ ���� �� ��� ���� �����. |
c | ���������� ��������-������. |
s | ��������� ��������, �������� ����������, ��������������� ��� ������� ��������, ������������ ������ �������� (\0); ������ ������� ������������ ���� �� ������������, ���� ����� ������ ���������� ��������, ������� �������� ��������. �� ��������� �������� ��������� ���������� �������; � ���� ������ ������� ���������� �� ��� ���, ���� �� ���������� ������������. ������ ��������� (NULL) ���� ��������������� ����������. |
% | ������ ������� %; ��������� �������� �� ���������. |
���� ������� ������������� ����� ������ ����� 0x7FF, �� ����� ������������ � ����
[-]NaN0xdddddddd��� 0xdddddddd - ����������������� ������������� ������� 32 ��� ��������.
����������� ���������� ������� �� ��������� �� �������� ������ ����; ���� ��������� �� ���������� � ����, �� ��� ����������� �� ��������� ��������. ������� printf � fprintf ������ ������� ���, ��� ���� �� ���������� ������� putc(3S).
�������
char*t="char*t=%c%s%c;main(){char q=%d; printf(t,q,t,q,q);}"; main(){char q=34;printf(t,q,t,q,q);}
����������� � ���� ��������� ��������������� ��������. ������� ������, ��� � ��������� � ������� printf ������ ��������� t ������ ������, � ������ ���������� ��� ������� ��������� ��������. ������ �������� ��� ������� �������, ������� ��������� ��� ���������, ��� � ������������� ��������������.
printf("pi = %.5f", 4*atan(1.0));
��. �����
ecvt(3C), putc(3S), scanf(3S), stdio(3S).
|