Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы ОАиП.docx
Скачиваний:
127
Добавлен:
09.03.2016
Размер:
139.71 Кб
Скачать

10.Управляющие коды-символы. Отображение специальных символов на экране монитора.

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

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

Стандарт РOSIX требует обязательного наличия лишь восьми управляющих символов — \0, \a, \b, \t, \n, \v, \f, \r (см. переносимый набор символов).

Вы можете использовать escape-последовательности для вывода на дисплей специальных символов. Программисты часто используют их для вывода символов, изображение которых невозможно получить иным способом:

Escape-последо-вательность

Функция

\'

отображает одинарную кавычку

\"

отображает двойную кавычку

\\

отображает обратную косую черту

Например, вы желаете вывести на экран текст:

Мы зовем ее "Наташа"

который содержит кавычки с именем «Наташа». Если вы попробуете отобразить эту строку с помощью инструкции

puts("Мы зовем ее "Наташа"");

то получите от компилятора сообщение об ошибке. Вспомните, параметр, передаваемый функции puts(), должен начинаться и заканчиваться кавычками, чтобы компилятор Си знал, где начинается и где заканчивается строка. В приведенном выше ошибочном примере, компилятор будет интерпретировать параметр как «Мы зовем ее» с дополнительными символами «Наташа""», которые расположены снаружи по отношению к паре двойных кавычек, но внутри пары скобок, содержащих параметр для вызова функции puts(). Для компилятора в такой строке оказывается слишком много информации.

Приведем теперь правильную запись этой инструкции:

puts("Мы зовем ее \"Наташа\"");

11.Форматированный ввод/вывод данных.

Функции форматированного ввода и вывода данных расположены в библиотеке stdio.lib. int scanf( const char * строка форматирования [, аргументы]) – читает форматированные данные, вводимые с клавиатруы, и записывает их в место, указанное аргументом. Каждый аргумент является указателем на переменную такого же типа, что и соответствующий форматирующий символ. В случае ошибки функция возвращает значение –1 (EOF). Строка форматирования состоит из трех видов символов: − спецификаторы формата; − символы, не являющиеся разделителями (за исключением символа ‘%’); − символы-разделители (пробел ‘ ’, табуляция ‘\t’, переход на следующую строку ‘\n’).

Спецификатор формата начинается с символа ‘%’ и определяет тип считываемых аргументов.

int printf ( const char * строка форматирования [, аргументы]) – выводит форматированные данные на экран. Строка форматирования состоит из: − символов, которые непосредственно выводятся на экран; − управляющих символов; − спецификаторов формата.

Общий вид этого спецификатора формата:

% [флаг] [ширина] [.точность] <символ_формата>

Параметр флаг определяет выравнивание числа при выводе.

Параметр ширина определяет минимальное количество выводимых символов.

Параметр точность имеет различное назначение для различных типов выводимых данных. Для действительных чисел, выводимых с использованием спецификатора «%f» и «%e», точность определяет количество десятичных разрядов, а для спецификатора «%g» – количество значащих цифр. При выводе строк точность определяет максимальную длину поля вывода, а при выводе целых чисел − максимальное количество цифр.