Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
27.11.2024
Размер:
653 Кб
Скачать
☆

Буферизованный ввод/вывод.

Язык СИ позволяет совершать операции ввода и вывода не только на высоком,

но и на низком уровне. При этом используется так называемый буферизованный

ввод/вывод (то есть ввод/вывод отдельных символов в их ASCII представлении).

Буфер – это область памяти, которая позволяет накапливать данные. При

буферизованном вводе/выводе символы, например, читаемые с клавиатуры,

размещаются в памяти и передаются программе по нажатию клавиши Enter

уже как целый блок.

Буферизованный ввод/вывод может быть: консольным и файловым.

Консольный ввод/вывод позволяет работать с клавиатурой и экраном.

Файловый ввод/вывод дает возможность писать в файл и читать из него.

В СИ консоль представляется в виде потока. Для работы с потоками

используются следующие функции:

- getchar() – читает с клавиатуры один (и только один) символ;

- putchar() – выводит один символ на экран.

Функция getchar() используется для чтения символов с клавиатуры. Если

символ в буфере в данный момент времени есть, то getchar() извлекает его.

Если символа нет, то getchar() приостанавливает работу программы и ждет

его появления. Эта функция возвращает в программу значение и этим

значением является прочитанный с клавиатуры символ.

Функция putchar() позволяет осуществлять вывод на экран отдельных

символов в текущей позиции курсора. Аргументами функции putchar()

могут быть:

отдельные символы, управляющие команды, символьные переменные.

Билет № 20. Модификаторы форматных команд в printf();

Рассмотренные форматные команды могут быть модифицированы.

Модификатор ширины поля может использоваться при необходимости

вывести большой объем целых, вещественных или символьных значений.

Модификатор ширины определяет минимальное число позиций, отводимое

под вывод. Значение выравнивается по правой стороне столбца.

Модификатор точности. Может использоваться для вывода на экран

вещественных и строковых значений. Позволяет задать число позиций,

отводимое под вещественную часть числа (по умолчанию 6). При работе

со строками определяет максимальное число символов, выводимое на экран.

Если вещественная часть значения типа float или double оказывается длиннее,

чем указанное в модификаторе, то происходит округление. В аналогичной

ситуации для строк – лишние символы отбрасываются.

Модификатор «0». При использовании модификатора ширины поля пустые

позиции слева от значения заполняются пробелами. Использование

модификатора «0» позволяет заменить их на нули.

Модификатор «1» позволяет вывести на экран значения типа long int и double.

Модификатор «h» используется для вывода на экран «коротких» значений.

Модификатор «*» используется в случае, если программист не может

заранее определить ширину поля и предоставляет решение этой проблемы

компьютеру.

Билет №21. Синтаксис оператора вывода на языке си.

Синтаксис оператора printf(). Данная функция используется для вывода

данных на экран. В общем виде функция printf() имеет вид:

printf(“control_string”, argument_list);

argument_list (список аргументов) может содержать в себе константы,

переменные, выражения или функции, разделенные запятой.

Каждому элементу из argument_list должен быть поставлен в соответствие

форматный спецификатор, записываемый в control_string (форматной строке);

control_string записывается в двойных кавычках. Форматная строка может

содержать в себе элементы трех различных типов:

- текстовые символы – обычные символы, выводимые на экран так, как они

записаны в форматной строке;

- форматные спецификаторы – специальные группы из 2-х или более символов,

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

Форматные команды начинаются со знака процента %;

- неотображаемые символы – символы табуляции, пробела, перехода на

следующую строку и др.

Для каждого из возможных в СИ типов данных существует как минимум

один форматный спецификатор, таблица 10

Соседние файлы в папке Экзамен