
- •Ввод-вывод данных
- •Ввод-вывод данных на консоль. Библиотека stdio
- •Стандартные потоки библиотеки stdio
- •Чтение и запись символов
- •Чтение и запись строк
- •Обзор консольных функций ввода-вывода
- •Форматированный ввод-вывод данных
- •Команды форматирования функции printf.
- •Команды форматирования функции scanf().
- •Сравнительная характеристика консольных функций ввода-вывода
- •Функции ввода-вывода библиотеки iostream
- •Форматирование ввода-вывода
Форматированный ввод-вывод данных
Функции printf() и scanf() выполняют форматированный ввод-вывод на консоль, иначе говоря, они могут считывать и записывать данные в заданном формате и с комментариями. Обе функции могут оперировать любыми встроенными типами данных, включая символы, строки и числа.
Функцию printf часто называют «выводом с форматированием».
Формат вызова: #include <stdio.h>
рrintf ("управляющая строка", аргумент _1, аргумент _2,...);
Первый аргумент функции, в кавычках называют строкой форматирования, так как она указывает «как нужно производить вывод», то есть определяет формат вывода, последующие аргументы указывают «что нужно выводить».
Строка форматирования содержит элементы трех типов:
обычные символы, которые просто копируются в стандартный выходной поток (выводятся на экран дисплея);
команды форматирования, которые определяют тип отображаемого аргумента;
управляющие символьные последовательности, которые осуществляют форматирование.
Команда форматирования начинается с символа %, за которым следует код формата. Основные форматы представлены в таблице 11.2. и таблице 11.3.
Количество аргументов после строки форматирования должно совпадать с количеством команд форматирования, причем совпадение обязательно и в порядке их следования.
Команды форматирования функции printf.
Таблица 11.2.
%c |
Символ |
%s |
строка символов |
%d, %i |
десятичное целое со знаком |
%u |
десятичное целое без знака |
%f |
вещественное число (значение с плавающей точкой) |
%e |
Экспоненциальное представление вещественного числа |
%o |
восьмеричное число без знака |
%x |
шестнадцатеричное. число без знака |
При форматировании необходимо не только выводить символы, но и управлять выводом ,например, переводить строки, делать отступы и так далее. Для этой цели служат управляющие символы, уже рассмотренные нами ранее, часто их называют escape-последовательностями. Напомним, что каждая последовательность начинается с символа обратной косой черты (\), который указывает на то, что символы, расположенные за ним, являются управляющими. Когда компилятор встречает обратную косую черту, он не отображает следующие символы, а выполняет действие, на которое они указывают.
Пример: Вывод значений трех переменных на экран терминала.
Для большей наглядности различные элементы функции printf() выделим различными шрифтами.
вывод текста(комментарий)
управляющие последовательности
команды форматирования
имена переменных (объекты вывода)
printf ("Вывод трех целых чисел: \n\tx=%d\t y=%d\tz=%d", x , y , z);
Комбинация символов %d служит своего рода указателем места в строке, куда необходимо вставить значение переменной при печати.
Пусть 5,15,25 – это значения переменных x,y,z, тогда на экране будет отображено следующее:
Вывод трех целых чисел:
x=5 y=15 z=25
Функция scanf считывает данные с клавиаруры и сохраняет информацию в переменных, заданных аргументами, перечисленными в списке аргументов.
Формат вызова:
#include <stdio.h>
scanf ("форматирование", аргумент _1, ...);
Аналогично функции printf() используются команды форматирования.