Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Интегрирование Глава 3.doc
Скачиваний:
3
Добавлен:
12.11.2018
Размер:
986.62 Кб
Скачать

Оператор вывода в поток

Используется для вывода значений переменных в информационный поток.

Поток – последовательность информации, формируемая (считываемая) в процессе решения задачи.

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

Структура оператора:

fprintf(Указ_уст, “управляющая строка” [, П1, …, Пi, ... ,Пn]);

, где fprintf – имя функции («напечатать»)

Указ_уст – указатель устройства вывода;

“управляющая строка” – список спецификаторов выводимых переменных, оформленный в виде символьной строки;

П1 Пi Пn – список идентификаторов выводимых переменных;

, , – разделители аргументов функции fprintf;

( ) – ограничители аргументов функции fprintf;

[ ] – признак необязательности содержимого;

; – символ оператора.

Указатель (Указ_уст) предписывает организацию потока вывода на одно из стандартных устройств (экран, принтер, магнитный диск и т.д.).

В качестве указателя устройства используются идентификаторы устройства или файла:

  • stdout;

  • УИФ.

Указатель stdout предписывает организацию потока вывода на экран дисплея.

При выводе потока в файл, задается УИФ (указатель имени файла), принимающего поток. Формирование УИФ в данной главе не рассматривается.

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

Структуры спецификаторов, правила записи и использования оператора идентичны рассмотренным для оператора printf.

Так, оператор

fprintf(stdout,“%10d%9.1f%11.1e”, i, r, z);

предписывает вывод на экран монитора численных значений трех переменных аналогично рассмотренному в операторе printf.

  • Внимание! Использование функции вывода fprintf c указателем устройства stdout идентично использованию функции вывода printf.

        1. Организация ввода-вывода переменных

Рассмотренные операторы позволяют овладеть технологией (методикой) организации ввода-вывода переменных.

  • Внимание! В предлагаемом разделе рассматривается использование спецификаторов классической структуры (длина и точность обязательны).

Организация ввода-вывода с использованием укороченных спецификаторов представлена в разд. 6.2.1.1.

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

Для вводимых переменных численные значения известны. Поэтому методика организации ввода достаточно проста:

  • создать идентификаторы переменных для входных данных алгоритма, определив тип каждого;

  • сформировать константы из численных значений исходных данных;

  • привести типы констант в соответствие с типами их переменных;

  • определить длину поля значения каждой вводимой переменной;

  • сформировать спецификатор каждой переменной;

  • установить желательную последовательность переменных в списке ввода;

  • сформировать адрес каждой переменной;

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

Пример 3.1. Осуществить ввод переменных A=13,2 B= -6,8 I=70 PI=3,1416.

Подготовка к вводу представлена в табл. 3.9.

Таблица 3.9

Запись в задаче

Обозначение в Си/Си++

Тип

переменой

Обозначение типа

Длина

поля

Специфи-катор

A=13,2

B= -6,8

I=70

PI=3,1416

a=13.2

b= -6.8

i=70

pi=3.1416

Вещественный

Вещественный

Целый

Вещественный

f

f

d

f

4

4

2

6

%4f

%4f

%2d

%6f

Расположение переменных в списке оператора ввода произведем аналогично табличному. При этом фрагмент программы по организации ввода оформится операторами:

float a, b, pi; /* описатели */

int i; /* переменных */

. . .

scanf(“%4f%4f%2d%6f”, &a, &b, &i, &pi );/*оператор ввода*/

Строка численных значений, подготовленных к вводу, будет иметь вид:

13.2-6.8703.1416

Следовательно, управляющая строка оператора ввода каждым спецификатором предписывает, какая часть вводимых значений соответствует конкретной переменной (переменной a – первые четыре символа, переменной b – следующие четыре, переменной i – два, переменной pi – шесть).

Пример 3.2. Осуществить ввод переменных для расчёта площади (длины Д=120 м; ширины Ш=3,6 10-3 км; переводного коэффициента K= 0,001 км/м)

В этом примере требуется предварительная подготовка данных, так как типы переменных Д и Ш не совпадают с типами их значений.

Методику преобразования представим табл. 3.10.

Таблица 3.10

Запись в задаче

Обозначение в Си/Си++

Тип

переменой

Обозначение типа

Длина

поля

Специ-фикатор

Д=120

Ш=3,6 10-3

K= 0,001

d=120.

sh=3.6E-3

k= 0.001

Вещественный

Вещественный

Вещественный

f

e

f

4

6

5

%4f

%6e

%5f

Расположение переменных в списке оператора ввода произведем аналогично табличному.

При этом фрагмент программы по организации ввода оформится операторами:

float d, sh, k; /* описатели переменных */

. . .

scanf(“%4f%6e%5f”, &d, &sh, &k ); /* оператор ввода */

Строка численных значений, подготовленных к вводу:

120.3.6E-30.001