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

SCANF(3S)

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

������ ������ �������� ������������� ��������������, ������� ������ ������ ������������� �������� ������. � ������� ����� �����������:

  1. ���������� ������� (���������� ������, ���������, ������� ������, ������� � ����� ��������), ������� (�� ����������� ���� ��������� ���� �������) �������� ������ �� ���������� ������������� �������.
  2. ������� ������ (�� %), ������� ������ ��������� �� ��������� �������� ������ �����.
  3. ������������� ��������������, ��������� �� ������� %, ��������������� ������� ���������� ������������ *, ��������������� �����, ��������� ������������ ������ ���� � ������ �����, ��������������� ������� l ��� h, ������������ ������ ����������, ���������� ��������, � ����� ���� ��������������.

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

�������

  1. � ���������� ������
    	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.

  2. ����� ������
    	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.

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

��������
�������������� ���������� ������� (������� ������� ������) �������� � ������ ����� ��������������, ���� ������ ��� �� ���� ���� ����������� ��������.
Comments: [email protected]
Designed by Andrey Novikov
Copyright © CIT