Ввод и вывод данных в C

Ты уже написал несколько программ, использовал переменные, отображал на экране сообщения – ты молодец! И, наверное, заметил, что, если хочешь вычислить результат (например, площадь прямоугольника, который имеет другие длины сторон), необходимо изменить значения переменных в программе. И это не очень удобно – почему любой, кто использует твои программы, может внести в них изменения?! А если после модификации они перестанут правильно работать?!

Давайте познакомимся с двумя новыми понятиями: ввод и вывод

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

Когда говорят о выводе, имеется в виду вывод данных (результатов) на экран или в файл. 

Для ввода и вывода данных в C и C++ используются различные функции. Давайте посмотрим, какие функции используются в C:

Функции getchar() и putchar(). Эти функции используются для ввода и отображения одного символа.  Чтобы их использовать, необходимо объявить заранее переменную типа char – чтобы зарезервировать в памяти место, куда можно записать считанное значение. Кроме того, не забывай об операции присваивания =, – с ее помощью значение, введенное с клавиатуры, присваивается переменной!  Функция getchar() используется в соответствии со следующей моделью:

<имя переменной> = getchar();

Для функции putchar() используется следующая модель:

putchar(<<имя переменной>);

Функции scanf() и printf(). Эти функции универсальны. Они могут быть использованы для ввода и вывода данных любого типа. Так же как и для предыдущих функций, необходимо заранее объявить все переменные, значения которых будут считываться или выводиться. 

Функция  printf() используется в соответствии со следующей моделью:

printf(”сообщения + спецификаторы формата”, список переменных);

Что означает “спецификатор формата“? Спецификатор формата – это сочетание символов  % с последующей буквой.Например, спецификаторы %d  и %f – используются для вывода чисел. Существует множество различных спецификаторов формата. В этом курсе мы будем использовать только самые важные из них: 

%d  – для отображения целого числа
%f  – для отображения вещественного числа
%c  – для отображения одного символа
%s  – для отображения строки символов

Более того, функция printf использует и управляющие последовательности. Управляющая последовательность описывает действие, которое должно быть выполнено. Сейчас мы поговорим только о двух из них:

n – переход в новую строку (эквивалент нажатия клавиши ENTER) и
t –  горизонтальная табуляция (эквивалент нажатия клавиши SPAСЕ до восьми раз)

После списка спецификаторов формата, размещенных между ” “, следует список переменных, значения которых будут отображаться. Список переменных и список спецификаторов формата связаны порядком элементов: первый спецификатор формата в списке соответствует первой переменной, второй спецификатор соответствует второй переменной и так далее!

При выводе, значение переменной представляется в соответствии со своим спецификатором формата. Внимание! Тип выводимой переменной должен быть совместимым с типом спецификатора формата. 

Данная программа выведет: 
– строку со значениям переменных a и b (строка 19 программы); 
– строку со значениями вещественных переменных x и y (строка 20 программы)
– строку с произведением значений переменных a и b (строка 21 программы)
– строку со средним значением переменных (строка 22)

Функция scanf() работает по принципу, аналогичному функции printf(), с той лишь разницей, что переменным, ассоциированным списку спецификаторов формата, присваиваются  значения, введенные с клавиатуры. 

Присвоение значения считаной переменной выполняется с помощью операции адресации &.

Таким образом, оператор вызова функции имеет следующее значение: ”считай значение указанного типа и запиши его по  адресу переменной с заданным именем”

scanf(”%<спецификатор формата>”, &<имя переменной>);