char beep = 7;
Второй способ представления необычных символов в языке С предусматривает применение специальных последовательностей символов, которые называются управляющими последовательностями. Список управляющих последовательностей и их описание приведено в табл. 3.2.
Таблица 3.2. Управляющие последовательности

Данные в языке С 95
Управляющие последовательности, присваиваемые символьным переменным, должны быть заключены в одиночные кавычки. Например, можно записать такой оператор:
char nerf = '\n';
а затем вывести переменную nerf, что обеспечит перемещение на следующую строку на принтере или на экране монитора.
Теперь давайте более пристально взглянем, что делает каждая управляющая последовательность. Символ предупреждения (\а), введенный стандартом С90, вызывает появление звукового или визуального предупреждающего сигнала. Природа предупреждающего сигнала зависит от оборудования; чаще других используется звуковой сигнал. (В некоторых системах предупреждающий символ не оказывает никакого действия.) Стандарт С требует, чтобы предупреждающий сигнал не изменял активную позицию. Под активной позицией в стандарте понимается место в устройстве отображения (экран, телетайп, принтер и т.д.), в котором иначе появился бы следующий символ. Выражаясь кратко, активная позиция — это обобщение понятия экранного курсора, с которым вы наверняка хорошо знакомы. Применение предупреждающего символа в программе, выводящей на экран, должно вызвать звуковой сигнал без перемещения экранного курсора.
Управляющие последовательности \b, \f, \n, \r, \t и \v представляют собой обычные символы управления выходным устройством. Их проще всего описывать в терминах того, как они влияют на активную позицию. Символ возврата на одну позицию влево (\b) перемещает активную позицию назад на один символ текущей строки. Символ перевода страницы (\f) переносит активную позицию в начало следующей страницы. Символ новой строки (\n) перемещает активную позицию в начало следующей строки. Символ возврата каретки (\r) переносит активную позицию в начало текущей строки. Символ горизонтальной табуляции (\t) перемещает активную позицию в следующую точку горизонтальной табуляции (обычно эти точки находятся в позициях 1,9, 17, 25 и т.д.). Символ вертикальной табуляции (\v) переносит активную позицию в следующую точку вертикальной табуляции.
Эти управляющие последовательности не обязательно работают на всех устройствах отображения. Например, на экране ПК символы перевода страницы и вертикальной табуляции не приводят к перемещению курсора, а вызывают появление случайных символов, но они работают в соответствие с описанием, когда отправляются принтеру.
Следующие три управляющие последовательности (\\, \' и \") обеспечивают возможность использования символов \, ' и " в качестве символьных констант. (Поскольку эти символы служат для определения символьных констант как части команды printf(), буквальное их указание может вызвать путаницу.) Предположим, что вы хотите вывести следующую строку:
Джо сказал: "символ \ является символом обратной косой черты."
Необходимо использовать такой код:
printf("Джо сказал: \"символ \\ является символом обратной косой черты.\"\n");
Две последних формы (\0оо и \xhh) — это специальные представления ASCII-кода. Чтобы представить символ его восьмеричным ASCII-кодом, предварите код обратной косой чертой (\) и поместите всю конструкцию в одиночные кавычки. Например, если ваш компилятор не распознает символ предупреждения (\а), вы можете воспользоваться его ASCII-кодом:
beep = '\0 0 7 ';
96 Глава 3
Ведущие нули можно не указывать, так что запись ‘\07 ' или даже ‘\ 7 ' будет правильной. Эта запись вызывает интерпретацию чисел в качестве восьмеричных, даже при отсутствии начального 0.
Начиная со стандарта С90, в С доступна и третья возможность — применение шестнадцатеричной формы для символьных констант. В этом случае за символом обратной косой черты следует символ х или X и от одной до трех шестнадцатеричных цифр. Например, символу соответствует шестнадцатеричный ASCII-код 10 (16 в десятичной форме), следовательно, его можно выразить как ‘\х10’ или ‘\X010'.
На рис. 3.5 приведены примеры целочисленных констант.

Читать дальше