|
��������
scanf, fscanf, sscanf - ���� � ��������������� �� �������
���������
include <stdio.h> nt scanf (format [, pointer] ...) har *format; nt fscanf (stream, format [, pointer] ...) ILE *stream; har *format; nt sscanf (s, format [, pointer] ...) har *s, *format;
��������
������� scanf ������ ������ �� ������������ ������ ����� stdin. ������� fscanf ������ ������ �� ������ �����,
��������� ���������� stream. ������� sscanf ������ ������� �������� � ������� s. ������ �� �������������
������� ������ �������, �������������� �� � ������������ � �������� � ���������� �� ��������� �������. ����������� ������� ��������: format - ������, �����������
���������������, � pointers - ��������� �� ������� ������, ���� ������� �������� ���������� ��������������.
���� ��� ��������� ������� �� ������� ����������, ��������� �������������; ���� �� ���������� ������� �����, ������ ������ ������������.
������ ������ �������� ������������� ��������������, ������� ������ ������ ������������� �������� ������. � ������� ����� �����������:
������������ ������ ������ �������������� �������� �������� ����; ��������� ������������� ����������, �� ������� ��������� ��������������� �������� pointer, ���� �� ������ ���������� ������������. ���������� ������������ ��������� ���������� � ������ ����� ��������� ����. ���� � ������ ����� ������������ ��� ������������������ ��������, �� ���������� ��������, ������� ���� �������������� "����������" (� ������ ���������) ��������, ���� ������������ �������, ���� ��� ������. ��� ���� ��������������, ����� [ � c, ������� � ������ ���� ������������.
��� �������������� ���������� ������ ������������� �������� ����; ��������������� ��������-���������, ��� �������, ������ ����� ��������������� ���. ��� ������������ ����� ��������� �� ��������. ������������ ��������� ���� ��������������:
% | �� ������ ����� ������ ���� �������� ������������ ������ %; ������� ������������ �� �����������. |
---|---|
d | �� ������ ����� ������ ���� ��������� ����� ���������� �����; ��������������� �������� ������ ���� ���������� �� �����. |
u | �� ������ ����� ������ ���� ��������� ����� ���������� ��� �����; ��������������� �������� ������ ���� ���������� �� ����� ��� �����. |
o | �� ������ ����� ������ ���� ��������� ����� ������������ �����; ��������������� �������� ������ ���� ���������� �� �����. |
x | �� ������ ����� ������ ���� ��������� ����� ����������������� �����; ��������������� �������� ������ ���� ���������� �� �����. |
i | �� ������ ����� ������ ���� ��������� ����� �����; ��������������� �������� ������ ���� ���������� �� �����. �������� ����� ����������� � ������������ � ������������ ����� C: ������� 0 ���������� ������������ �����, ������� 0x - �����������������, ���������� �������� - ����������. |
n | ����� ���������� �������� (������� ����������), ����������� � ������ ���������� �������, ������������ � ��������� ���������� �� ������ ����������. �� ������ ����� ������ �� ��������. |
e, f, g | �� ������ ����� ������ ���� ��������� ����� � ��������� ������; ��� ������������ ����� ������������������ ���� � �������������� ������, �������������� ���������� ������ � �������������� ��������; ������� ������������ ������ e ��� E, �� ������� ����� ��������� +, - ��� ������, � ����� - ����� �����. ��������������� �������� ������ ���� ���������� �� ���������� ���� float. |
s | �� ������ ����� ������ ���� ��������� ������� ��������; ��������������� �������� ������ ���� ���������� �� ���������� ������ ����������� �����, ����� � ��� ����������� �������� ������ � ����������� ������ �������� \0, ������� ����������� �������������. ������� ����� �������� ���� - ���������� ������. |
c | �� ������ ����� ������ ���� �������� ������������ ������; ��������������� �������� ������ ���� ���������� �� ������. ������� ������� ���������� �������� � ���� ������ �� ������������; ��� ������ ���������� ������������� ������� ����� ������ ������������ %1s. ���� ������ ������ ����, �� ��������������� �������� ������ ��������� �� ���������� ������; � ���� ������ �������� �������� ���������� ��������. |
[ | ������� ������ �������������� ������ �������. �� ����������� ������� ������� ��� ��������, ������� ���������� �������� ������������, � ����� ����������� ������; ������� ���� ������������ ����� ������������ ������� ������ �����, ��������� ������������� �� �������� �������. ���� ������ �������� ������� �������� ^, ��� ��������, ��� ������� ���� ������������ ����� ������������ ������� ������ �����, ���������� ����� ������� ����� ������������� � �������. ������ ������������ ������������ �� ������������ ��������. ��������� �������� ����� ������ ������������ ������-���������; ����� �������, ��� [0123456789] ����� ���������� ��� [0-9]. ��� ������������� ����� ������� ������ ������ ���� ����������������� ������ ��� ����� ����������, ����� ����� ��������������� ��� ������� ������ �������. ����� ��������������� ��� ������� ������, ���� �� ��������� �� ������ ��� �� ��������� ����� � �������. ���� � ������ ����� �������� ����������� ������, �� ��� ������ ���� ����� ������ �������� ������� (��������, � �������������� ^), � ��������� ������ ��� ��������������� ��� ������������ �������. ��������������� ����� ������������� �������� ������ ���� ���������� �� ���������� ������ ����������� �����, ��������� �������� �������� ������ ������ � ������������� \0, ����������� �������������. ��� �������������� ��������� ������������� �������, ���� �� ������ ����� ������ ���� �� ���� ������, ��������������� �������. |
����� �������������� d, u, o, x, i ����� �������������� ������ l ��� h, ����������, ��� ��������������� �������� ��������� �� ���������� ���� long ��� short, � �� int. ����������, ����� e, f, g ����� �������������� ������ l, ����������, ��� ��������������� �������� ��������� �� ���������� ���� double, � �� float. ��� ��������� ����� �������������� ������������ l � h ������������.
������� scanf ����������� �� ����� �����, ��� ���������� ������� ��� ��� ����������� � ������ ����� �������, ��������������� �������. � ��������� ������ ������-���������� �������� ������������� � ������ �����.
������� scanf ���������� ����� ������� ��������� � ��������������� �������; ��� ����� ����� ��������� �����, ���� ������� ���� ������������ �������������� � ��������. ���� ���� ���������� ��� ���������� � ��������������, ��������� ����� EOF.
�������
nt n; float x; char name[50]; = scanf("%d%f%s", &i, &x, name);��� ������� �� ������� ������ ��������
5 54.32E-1 Bill
����� ���������: ���������� n - �������� 3, ���������� i - �������� 25, ���������� x - �������� 5.432, � � ������ name ����� �������� Bill\0.
nt i,j; float x; char name[50]; void)scanf("%i%2d%f%*d %[0-9]", &j, &i, &x,name);��� ������� �� ������� ������ ��������
11 56789 0123 56a72
����� ���������: ���������� j - �������� 9, ���������� i - �������� 56, ���������� x - �������� 789., ������������������ 0123 ����� ���������, � � ������ name ����� �������� 56\0. ���� ����� ����� ������ ��������� ����� getchar [��. getc(3S)], �� ����� �������� ������ a.
nt i, j, s, e; char name[50]; void)scanf("%i %i %n%s%n", &i, &j, &s, name, &e);��� ������� �� ������� ������
x11 0xy johnson
����� ���������: ���������� i - �������� 17, ���������� j - �������� 0, ���������� s - �������� 6, � ������ name ����� �������� xy\0, � ���������� e ��������� �������� 8. ����� �������, ����� ����������� ����� ������� name ����� e - s = 2. ��� ��������� �� ���� ������ getchar [��. getc(3S)] ����� �������� ������.
��. �����
getc(3S), printf(3S), stdio(3S), strtod(3C),
strtol(3C).
�����������
��������� ������� ���������� �������� EOF ��� ���������� ������ �����, ��� ����� ������� ��������� � ��������������� �������.
��������
�������������� ���������� ������� (������� �������
������) �������� � ������ ����� ��������������, ����
������ ��� �� ���� ���� ����������� ��������.
|