Стандартные функции ввода/вывода данных языка Си

 

Для вывода как мы уже знаем используется стандартная функция printf(); Вот её формат:

printf("формат-строка", данные для вывода);
Для её использования необходимо подключить заголовочный файл stdio.h. Про подключение заголовочных файлов вы можете узнать из первого урока программирования для начинающих


Формат-строка это строка для вывода на экран со специальными управляющими символами. Рассмотрим следующий код:

Листинг 2.6

#include <stdio.h>
int main(void)
{

int a, b;
a=5;
b=7;
printf("V peremennoi a znachenie %d, a v drugoi %d ", a,b);

return(0);
}


Все символы заключенные в двойные кавычки кроме управляющих последовательностей (начинаются с символа\, например: \n) , и специальных символов ( начинаются с символа%) выводятся на экран. Специальные символы во время выполнения заменяются на значения переменных, указанных после формат-строки.первый специальный символ заменяется на первую переменную, второй - на вторую, и т.д.
Вот что будет после после выполнения программы выше:

В переменной a значение 5 , а в другой переменой 7


Для вывода различных данных используются различные специальные символы.
Вот основные из них:
%d - для целого числа
%f - для вещественного числа
%c - для одного символа


Существуют некоторые требования которые должны быть выполнены, иначе программа не будет скомпилирована:

  1. Количество специальных формат-символов должно совпадать с количеством переменных.
  2. Типы данных формат-символов и типы выводимых переменных должны совпадать.


Вот пример НЕ правильного использования:


Листинг 2.7

#include <stdio.h>
int main(void)
{

int a=4;
float b=5.4 , c=3.1;
printf("celaya peremennaya %f ",a); // несовпадение типов %f-для
// вещественных
// чисел, a-целая переменная
printf("%d ",a, b); //не объявлен формат символ для b

return(0);
}


До сих пор, мы прямо в тексте программы записывали данные. А что если нам надо самому вводить данные в программу с клавиатуры? Для этого используется стандартная функция scanf();
Она имеет следующий формат:
scanf("формат строка ввода", адреса переменных);

Что бы её использовать надо подключить заголовочный файл stdio.h.
В формат строке указываются формат-символы вводимых данных, а далее после запятой следуют адреса переменных в которые необходимо записать данные. Вы спросите, а где нам взять адреса? Это очень просто, для этого используется специальный оператор "&".
Например:


Листинг 2.8

#include <stdio.h>
int main(void)
{
int a,b;
printf("Vvedite dva chisla cherez probel");
scanf("%d %d", &a,&b);
return(0);
}


Сначала мы объявили две целые переменные, потом вывели строку-подсказку для пользователя, о том что необходимо ввести два числа. И далее считали введенные данные в переменные a и b. Теперь мы можем их использовать по своему усмотрению.Для этой функции такие же ограничения как и для функции printf.


Ну вот на этом мы и закончим наш очередной урок программирования на Cи для начинающих.

Резюме урока:

· научились объявлять и инициализировать переменные.

· научились использовать оператор присваивания

· узнали об типах данных используемых в Си

· познакомились в первом приближении со стандартными функциями ввода/вывода данных в Си.

 

Задание для практической работы.

  1. Разберитесь окончательно с оператором присваивания и с объявлением и инициализацией переменных.
  2. Перепишите программу Листинг 2.6 и посмотрите как она работает. На её основе поэкспериментируйте с количеством выводимых на экран переменных их их типами.
  3. Перепишите программу Листинг 2.7, посмотрите как отреагирует на ошибки ваш компилятор, и будут ли они вообще. Потом исправьте в ней ошибки так, чтобы она работала корректно. Правильно выводила данные на экран монитора.
  4. Пусть имеется: int a=4; float b=6.7, c=4.92; Напишите, как будет выглядеть функция printf, для того чтобы на мониторе появилось c=4.92 a=4 b=6.7
  5. Напишите следующую программу.Пользователь сначала вводит два числа одно целое другое вещественное. На экран должна выводиться следующая строка: Vi vveli pervoe A, vtoroe B, sohraneno C. Где A целое число введенное пользователем с клавиатуры, B - вещественно число введенное пользователем с клавиатуры, С - любое вещественное число, заданное в коде программы.