Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_2_изд_испр.doc
Скачиваний:
3
Добавлен:
01.05.2025
Размер:
2.27 Mб
Скачать

6. Ввод-вывод

Ввод-вывод в языке Basic в данном разделе не рассматриваем.

Ввод-вывод – это передача данных между переменными программы в оперативной памяти и внешней средой.

Ввод – это передача: внешняя средаоперативная память, вывод – оперативная памятьвнешняя среда.

Здесь рассмотрим только форматный обмен, т.е. обмен с преобразованием данных. В языке C обмен данных производится с помощью функций, прототипы которых хранятся в файле stdio.h.

Основными функциями форматного ввода-вывода являются: printf – вывод на экран, scanf – ввод с клавиатуры.

Формат обращения к ним:

{scanf | printf}(<управляющая строка>[, <список-данных>]);

6.1. Управляющая строка

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

Формат одной спецификации:

%[<флаги>][W][.D][l]<тип>

Флаги для функции printf (для функции scanf они не используются):

- данное прижимается к левой границе поля вывода, если выводи-

мое значение имеет меньше символов, чем размер поля вывода;

+ число всегда выводится со знаком;

<пробел> вместо знака числа: <пробел> для чисел > 0, - для чисел <0.

W – размер поля данного в символах (байтах).

D – обычно характеризует точность представления значения при выводе, при вводе не используется.

l – модификатор длинных значений; употребляется при передаче значений типа long и double.

<тип> - это собственно спецификация, определяющая тип передаваемого значения.

6.1.1. Спецификация d (целые десятичные числа)

Ввод. Формат спецификации: %[W][l]d

Значения при вводе разделяются символами разрядки. Если до появления символа разрядки будет считано W символов и в спецификации присутствует параметр W, то ввод данного значения закончится.

W – максимальное число считываемых символов.

Пример.

Внешнее представление Спецификация Значение в памяти

165<пробел> d 165

-165<Tab> d -165

+165<Enter> d 165

165 2d 16

165 1d 1

431921 ld 431921

-431921 4ld -431

+431921<пробел> 10ld 431921

Вывод. Формат спецификации: %[<флаги>][W][.D][l]d, где D – минимальное число выводимых символов. Если длина выводимого значения превышает W символов, то действие параметра W игнорируется и значение выводится полностью. Если его длина меньше W символов, то выводимое значение располагается в крайних правых позициях поля вывода. Если при этом использован флаг -, то значение располагается в крайних левых позициях поля. Если длина значения меньше D символов, то значение дополняется слева нулями.

Пример.

Значение в памяти Спецификация Внешнее представление

2475 d 2475

2475 +d +2475

2475 <пробел>d <пробел>2475

-2475 d -2475

-2475 +d -2475

-2475 <пробел>d -2475

-2475 3d -2475

2475 10d ______2475

2475 +10d _____+2475

2475 -10d 2475______

2475 -+10d +2475_____

2475 10.4d ______2475

-12 10.4d ______-012

-12 .4d -012

-12 .0d -12

3 5.0d ____3

-478126 10ld ___-478126

-478126 -10ld -478126___

478126 +-10ld +478126___