stdio.h

scanf

Описание

int scanf( const char *format, ... )

Функцията чете потока stdin и съхранява прочетената информация в променливите от списъка с аргументи. Функцията чете всички вградени типове данни и автоматично ги превръща в подходящия формат.

Параметри

const char *format

Контролния низ е съставен от нула или повече нормални символи и директиви за прочитане. Всяка директива за прочитане започва с знака %.

Типове директиви за прочитане

Директива Описание
%% Прочита %
%c Прочита символ
%d Прочита int със знак
%i Прочита int със знак
%e Прочита се в научна нотация е
%f Прочита число с плаваща запетая
%g Прочита с по краткото % е или %f
%o Прочита числото в осмично представяне
%s Прочита низ
%u Прочита unsigned int
%x Прочита число в 16-тичен формат с малки букви
%p Прочита указател
%n Получава целочислена стойност равна на броя прочетени стойности

 Всяка директива за прочитане може да притежава два вида флага. Флагове за дължина и флагове за модифициране.

 Флагове за дължина

Флаг Описание
(дължина) Максимален брой символи за прочитане.
* Максималния брой символи се задава динамично чрез параметър в аргументите.

Флагове за модифициране

Флаг Описание
h Прочита short int параметри. Използва се с целочислиени типове(%d ,%i, %u, %o, %x).
l Прочита long int параметри с целочислени типове(%d ,%i, %u, %o, %x) и разширени низове с %s.
L Прочита long double параметри. Използва се с типове за плаваща запетая (%f, %g, %e).

 

...

Множество от параметри. Броя на параметрите трябва да бъде равен на броя на зададените директиви в контролиращия низ.

Връщани стойности

Функцията връща броя на успешно прочетените и записани в променливи стойности.

Примери

от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.     char firstName[20];
  6.     char lastName[20];
  7.  
  8.     printf("Моля въведете име:");
  9.     scanf("%s", firstName);
  10.     printf("Моля въведете фамилия:");
  11.     scanf("%s", lastName);
  12.  
  13.     printf("Здравейте %s %s !!!!", firstName, lastName);
  14.  
  15.     return 0;
  16. }
от: adviser at cpp-examples dot com   Свали кода във файл
  1. #include <stdio.h>
  2.  
  3. int  main()
  4. {
  5.     int d;
  6.  
  7.     scanf("%d", &d);
  8.     printf("%d", d);
  9.  
  10.     scanf("%2d", &d);
  11.     printf("%d", d);
  12.  
  13.     return 0;
  14. }
от: adviser at cpp-examples dot com   Свали кода във файл
  1. /* Програмата прочита вашето име от клавиатурата и го отпечетва 5 пъти */
  2.  
  3. #include <stdio.h>
  4. #define BELL `\a`
  5.  
  6. int main()
  7. {
  8.    char fname[20];        
  9.  
  10.    printf("Какво е вашето име?");          
  11.    scanf(" %s", fname);           
  12.    for(int ctr=0; ctr < 5; ctr ++)                        
  13.    {                                      
  14.      printf("%s\n", fname);    
  15.    }
  16.  
  17.    printf("%c", BELL);                  
  18.    return 0;
  19. }

Виж също

fscanf - чете форматиран вход от файл
sscanf - чете форматиран вход от буфер
vscanf - прочита форматиран вход
vfscanf - прочита форматиран вход
vsscanf - прочита форматиран вход