Урок 5. Ввод информации с клавиатуры (scanf)

Всем привет. Сегодня попробуем ввести информацию с клавиатуры и сохранить в переменной. Для этого используется функция scanf из библиотеки stdio.h.

Пример использования функции scanf:

#include 
 
int main (){
int a,b=5;
printf ("a=");
scanf ("%d", &a); /*Ожидаем ввод значения*/
printf ("a+b=%d\n", a+b);
return 0;
}

Начнем разбирать каждую строку отдельно, начиная с четвертой.

В четвертой строке мы объявляем переменные a и b типа int, и сразу присваиваем переменной b значение пять.

В пятой строке выводим на экран текст a= с помощью функции printf.

В шестой строке мы используем функцию scanf. Когда программы выполнит пятую строку и перейдет к шестой строке она будет ожидать ввода информации. Рассмотрим поподробнее конструкцию. Сначала мы объявляем саму функцию scanf и открываем скобки, а внутри скобок кавычки.После кавычек ставим запятую, знак & и переменную в которую хотим записать информацию (писать надо слитно — &a). Переменная a у нас десятичная int, поэтому в кавычках пишем спецификатор %d (как для printf, но только в этом случае программа будет не выводить а записывать в переменную) (спецификаторы дле переменных мы рассматривали на третьем уроке). Но с спецификаторами не всегда так. В некоторых случаях приходится использовать так же плюс и модификаторы:

Модификаторы:

  • *h — для ввода значений типа short int (hd);
  • *l — для ввода значений типа long int (ld) или double (lf,le);
  • *L — для ввода значений типа Long double (Lf,Le);

В седьмой строке мы используем printf. Она вам уже хорошо знакома. И здесь мы получаем сумму a и b.

Рассмотрим еще один пример.

#include 
 
int main (){
float a,b=12.1; 
printf ("a=");
scanf ("%f", &a);
printf ("a+b=%f\n", a+b);
return 0;
}

Результат выполнения программы:

a=75,6
a+b=87.700000

Как видно из результата выполнения программы, после запятой у нас пять лишних нулей. Но от этого можно избавиться. Для этого мы отредактируем седьмую строку:

printf ("a+b=%.2f\n", a+b);
Замените седьмую строку и выполните программу еще раз. Результат:
a=72,6
a+b=84.70

Как видно после запятой у нас два символа (округляется до сотых). А по умолчанию шесть, но можно и увеличить и уменьшить. Можно так же регулировать количество символов до запятой.

Чтобы регулировать количество символов, нужно после знака % — процента указать количество символов, а потом поставить спецификатор.

Проанализируйте работу этой программы:

#include 
 
int main (){
float a,b=12.1;
printf ("a=");
scanf ("%f", &a);
printf ("a+b=%2.2f\n", a+b);
return 0;
}

Все!