Ввод и вывод консольных текстовых сообщений
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Обмен данными между программой и внешними устройствами осуществляется с помощью операций ввода-вывода. В языке Си++ нет особых операторов для ввода или вывода данных, вместо этого имеется набор библиотек функций и классов, стандартно поставляемых вместе с компилятором, которые и реализуют основные операции ввода-вывода.

В задачу данного методического пособия не входит описание программирования в графических 32 – разрядных системах типа MS Windows, поэтому в дальнейшем будут рассмотрены только операции ввода и вывода сообщений на терминал, который осуществляется на консольном окне MS Windows, MS DOS или Unix.

Форматированный ввод и вывод консольных сообщений реализуется средствами ввода-вывода стандартной библиотеки Си, подключаемой с помощью заголовочного файла stdio.h.

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

printf (форматная_строка, список_аргументов);

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

В примере

printf (“\na=”);

содержится текст “a=” и управляющий символ “\n”. Текст выводиться на экран в том виде, в котором он записан, а управляющие символы влияют на расположение на экране выводимых знаков. В результате выполнения этого оператора на экран с новой строки выведутся символы a=.

Спецификатор формата определяет форму внешнего представления выводимой величины. Основные спецификаторы формата:

%с – символ;

%s – строка;

%d – целое десятичное число (тип int);

%u – целое десятичное число без знака (тип unsigned);

%f – вещественные числа в форме с фиксированной точкой;

%e – вещественные числа в форме с плавающей точкой (с мантиссой и порядком).

Оператор

printf (“\nПлощадь треугольника=%f”, s);

содержит все виды параметров функции printf. Список аргументов состоит из одной переменной s, значение которой выводится на экран. Пара символов %f является спецификацией формата выводимого значения этой переменной. Символ % - признак формата, а f указывает на то, что выводимое число имеет вещественный тип и выводится на экран в форме с фиксированной точкой. Например, если в результате вычислений переменная s получит значение 32.435621, то на экран выведется:

Площадь треугольника=32.435621

В результате выполнения следующих операторов

float m,p;

int k;

m=84.3; k=-12; p=32.15;

printf (“\nm=%f\tk=%d\tp=%e”,m,k,p);

на экран будет выведен следующий текст:

m=84.299999    k=-12       p=3.21500e+01

Здесь дважды используемый управляющий символ табуляции \t отделяет друг от друга выводимые значения. Из этого примера видно, что соответствие между спецификаторами формата и элементами списка аргументов устанавливается в порядке их записи слева направо.

К спецификатору формата также могут быть добавлены числовые параметры: ширина поля и точность. Ширина – это число позиций, отводимых на экране под всю величину, а точность – число позиций, отводимых под дробную часть выводимого значения. Параметры записываются между значком % и символом формата и отделяются друг от друга точкой.

Оператор

printf(“\nm=%5.2f\tk=%5d\tp=%8.2e\tp=%11.4e”,m,k,p,p);

выведет на экран следующий текст

m=84.3  k=-12  p=3.215 p=3.2150e01

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

Форматированный ввод с клавиатуры осуществляется с помощью функции scanf (), которая имеет следующую структуру:

scanf (форматная_строка, список_аргументов);

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

В структуре форматная_строка является обязательной, заключается в кавычки и состоит из списка спецификаций. Каждая спецификация начинается со знака %, после которого могут следовать

* ширина_поля модификатор спецификатор

обязательным элементом является лишь спецификатор. Для ввода числовых данных используются те же спецификаторы, что и в функции printf().

Звездочка (*) в спецификации позволяет пропустить во входном потоке определенное количество символов, а ширина_поля – целое положительное число, позволяющее определить число символов из входного потока, принадлежащих значению соответствующей вводимой переменной.

Список_аргументов – это перечень вводимых переменных и в структуре тоже является обязательным. Перед именем переменной в списке_аргументов всегда ставится символ & - операция ссылки или взятие адреса переменой.

Оператор

scanf (“%f%f%f”,&a,&b,&c);

производит ввод числовых вещественных значений в переменные a , b , c. Если последовательность ввода будет такой:

5 3.2 2.4 <Enter>

то переменные получат следующие значения: a=5.0, b=3.2, c=2.4.

Разделителем в потоке ввода между различными значениями может быть любое количество пробелов, а также другие пробельные символы: знак табуляции, конец строки. Только после нажатия на клавишу Enter вводимые значения присвоятся соответствующим переменным. До этого входной поток помещается в буфер клавиатуры и может редактироваться.

Дата: 2019-02-02, просмотров: 235.