Server for Information Technologies ������ ��������������
������� �������������� ����������
(095) 932-9212, 932-9213, 939-0783
E-mail: [email protected]
������ �������� ����(!) ������������� ���������� CIT Forum CD-ROM

PRINTF(3S)

��������
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 ������������, ��������� �������������; ���� �� ������� �����, ���������� ������������.

������ ������������ �������������� ���������� �������� %, ����� �������� ��������������� ������������:

  1. ����� (����, ��������� ��� �� ������), ������� �������� ����� ������������ ��������������.
  2. �������������� ������������������ ���������� ����, �������� ����������� ������ ����, � ������� ������������ ��������� ��������������. ���� ��������� ����� ���� ��������� ������� ����������� ��������, �� ���� ����������� ����� (��� ������, ���� ����� ���� ������������ �� ����� �������) ��������� �� ����������� ������; ���� ������������������, �������� ������ ����, ���������� �����, �� ��� ���������� ������������ ����.
  3. ��������, �������� ����������� ���������� ���� � ����������� ���������� �������������� ���� d, i, o, u, x, X, ���������� ���� ����� ���������� ����� � ����������� ���������� �������������� ���� e, E, f, ������������ ���������� �������� ���� � ����������� ���������� �������������� ���� g, G, ��� ������������ ���������� �������� � ����������� ���������� �������������� ���� s. �������� ������������ � ���� ����� (.), �� ������� ������� ��������� ���������� ����; ���������� ���� ���������������� ��� ����. ���������� ���������� ���������, ������������� ���������, ��������� ����������, ������������� ������� ����.
  4. �������������� ������ l, ����������, ��� ����������� � ���� �������������� d, i, o, u, x, X ����������� � ����� ��������� ��������� ���� long. ��� ��������� �������������� ������ l ������������.
  5. ������, ������������ ��� ��������������.

������ ������������������ ���� ������ ���� � �������� ����� ���������� ����������. ��� ��������, ��� � �������� ������ ���� (��� ��������) ������������ ����� �������� 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).

�������

  1. ���������, ���������� ���� ����� (��� ������ ���� ������� �� ����� ������):
    	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 ������ ������, � ������ ���������� ��� ������� ��������� ��������. ������ �������� ��� ������� �������, ������� ��������� ��� ���������, ��� � ������������� ��������������.

  2. ���������� ����� "pi" � ����� ����������� �������:
    	printf("pi = %.5f", 4*atan(1.0));
    

��. �����
ecvt(3C), putc(3S), scanf(3S), stdio(3S).
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT