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

Глава 6. Ввод – вывод данных

Ввод–вывод – это передача данных между переменными программы(ОП) и внешней памятью(ВП).

В Си предусмотрен только форматный обмен.

<stdio.h> – файл прототипа.

Ввод:

Вывод:

Буфер имеет конечный размер и считывание из него происходит только после нажатия клавиши <Enter>.

Формат основных функций

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

<управляющая строка> := “[<произвольный текст>][<спецификации>]”

<список_данных> := <имя_переменной> [ , <имя_переменной> [, …] ]

Элементы списка данных scanf( ) – адреса переменных, значения которых задаются, поэтому необходимо использовать операцию &(нахождение адреса).

Возвращаемые значения: printf ( )– число выводимых символов (байтов), scanf( ) – число введенных скалярных значений.

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

Содержит спецификации для функций ввода-вывода.

Формат ОДНОЙ спецификации

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

% [признаки] [ширина_поля] [ .точность ] [модификатор] с_n.

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

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

+ число ВСЕГДА со знаком (актуально для положительных данных, в которых по умолчанию знак опускают, отрицательные всегда изображаются со знаком).

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

D – обычно характеризует точность представления значения при выводе, ПРИ ВВОДЕ НЕ ИСПОЛЬЗУЕТСЯ (количество цифр, которые необходимо вывести справа от десятичной точки для типов float и double).

Модификаторы:

l – модификатор "длинных"(long для целых, double для чисел с плавающей точкой), указывает, что соответствующий элемент имеет тип long.

h – модификатор “коротких”, указывает, что соответствующий элемент имеет тип short int.

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

ВВОД Формат спецификации

% [W] [l] d

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

l – модификатор для long.

Пример.

Внешнее представление

Спецификация

Значение в памяти

165<пробел>

d

165

+165<Enter>

d

165

165

2 d

16

165

1 d

1

431921

l d

431921

– 431921

4 l d

– 431

+ 431921<пробел>

10 l d

431921

ВЫВОД Формат спецификации

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

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.5d

– – – – – 02475

–24

10.5d

_ _ _ _ – 00012

–24

.5d

–00024

3

5.0d

_ _ _ _ 3

–478126

10ld

_ _ _–478126

–478126

–10ld

–478126_ _ _

478126

+–10ld

+478126_ _ _

      1. Спецификация f (вещественные числа с плавающей точкой)

ВВОД Формат спецификации

% [W] [l] f

l – для double.