СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Лекционный материал "Форматный ввод-вывод данных"

Категория: Информатика

Нажмите, чтобы узнать подробности

Лекционный материал предназначен для использования в образовательном процессе преподавателями профессионального цикла по освоению темы «Форматный ввод-вывод данных» на дисциплине "Основы алгоритмизации и программирования" для специальности» 09.02.07 Информационные системы и программирование.

Просмотр содержимого документа
«Лекционный материал "Форматный ввод-вывод данных"»

Лекция.


Форматный ввод и вывод данных


Большинство версий компиляторов C++ включают также библиотеки ввода-вывода языка Си, позволяющий использовать для вывода функцию printf(аналог потока cout).

Функция printf не обеспечивает должного контроля за типом данных, поэтому можно отобразить число как символ. Или символ как число.

Для использования функции printf необходимо подключить заголовочный файл cstdio

В общем виде printf можно записать так:

printf(“Управляющая строка”, аргумент1, аргумент2, … , аргумент n);

Управляющая строка содержит компоненты трех типов:

  1. Обычные символы, которые копируются в стандартный входной поток (выводятся на экраны).

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

  3. Управляющие символьные константы.

Каждая спецификация преобразования начинается с символа % и заканчивается некоторым символом, задающим преобразования.

Между знаком % и символом преобразования могут встречаться другие знаки, в соответствии со следующим форматом



2

3

4

5

1

%

[признаки]

[ширина поля]

[.точность]

[буквы f:F:n:N]

c_n


  1. c_n – это символ преобразования и на его месте могут быть записаны:

c – значением аргумента является символ.

d или i – значением аргумента является целое число.

e – значением аргумента является вещественное число в экспоненциальной форме (например, 1.2345e+2).

E – значением аргумента является число в экспоненциальной форме (1.2345E+2).

f – значением аргумента является вещественное число с плавающей точкой типа float.

g – значением аргумента является вещественное число, но исключается вывод незначащих нулей.

O – значением аргумента является восьмеричное число.

s – значение аргумента – строка символов.

u – значением аргумента является беззнаковое целое число.

x – значением аргумента является шестнадцатеричное число.

p – значением аргумента является указатель.

n – используется в операциях форматирования.

  1. Признак.

« - » - указывает, что преобразованный параметр должен быть выровнен по левому краю.

«+» - приводит к выводу данных со знаком, включая знак +.

  1. Ширина поля – это строка цифр, задающая минимальный размер поля.

Если ширина поля больше длины строки, то добавляются пробелы.

  1. .точность

Это строка цифр, задающая максимальное количество символов или количество цифр, которое нужно вывести справа от десятичной точки в значениях типа float или double.

  1. При выводе вещественного числа типа double указывается символ l (английское «эл»). При выводе аргумента типа long double указывается символ L.

Если после знака % записан не символ преобразования, то он выводится на монитор. В функции printf можно использовать те же эскейп-последовательности, что и в потоке cout (\n, \t и т.д.).


Пример.

Объявим и проинициализируем переменные вещественного типа и выведем их на монитор с помощью printf.

#include

#include

using namespace std;

int main()

{

setlocale(LC_ALL, "RUS");

//объявляем и инициализируем переменные

int x=7;

double y=-9.25;

//вывод переменных

printf("\n Значение переменной x = %i", x);

printf("\n Значение переменной y = %7.2lf", y); //или %-15.2lf

printf("\n");

}


Другой вариант вывода:

#include

#include

using namespace std;

int main()

{

setlocale(LC_ALL, "RUS");

//объявляем и инициализируем переменные

int x=7;

double y=-9.25;

//вывод переменных

printf("\n Значение переменной x = %d y = %7.2lf", x, y);

printf("\n");

}


Форматный ввод данных


Функция scanf обеспечивает форматный ввод данных, её можно написать в следующем формальном виде

scanf(“Управляющая строка”, аргумент1, аргумент2, … , аргумент n);

Аргументы должны быть указателями на соответствующие значения. Поэтому перед именем аргументов обязательно ставить символ &.

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

В нее могут включаться спецификации преобразования таким же как в функции printf.

Пробелы, символы табуляции и перехода на новую строку. Все они игнорируются.

Пример.

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

#include

#include

using namespace std;

int main()

{

setlocale(LC_ALL, "RUS");

//объявляем и инициализируем переменные

int a;

double b;

//ввод a

printf("\n Ввести a = ");

scanf("%d", &a);

//ввод b

printf("\n Ввести b = ");

scanf("%lf", &b);

//вывод

printf("\n a = %d b = %lf", a, b);

printf("\n");

}


Изменим программу, воспользовавшись оператором создания новых имен для типов переменных:

#include

#include

using namespace std;

typedef double beta;

int main()

{

setlocale(LC_ALL, "RUS");

//объявляем и инициализируем переменные

int a;

beta b;

//ввод a

printf("\n Ввести a = ");

scanf("%d", &a);

//ввод b

printf("\n Ввести b = ");

scanf("%lf", &b);

//вывод

printf("\n a = %d b = %lf", a, b);

printf("\n");

}