Отображение специальных символов на экране монитора
Вы можете использовать escape-последовательности для вывода на дисплей специальных символов. Программисты часто используют их для вывода символов, изображение которых невозможно получить иным способом:
Escape-последо-вательность | Функция |
\' | отображает одинарную кавычку |
\" | отображает двойную кавычку |
\\ | отображает обратную косую черту |
Например, вы желаете вывести на экран текст:
Мы зовем ее "Наташа"который содержит кавычки с именем «Наташа». Если вы попробуете отобразить эту строку с помощью инструкции
puts("Мы зовем ее "Наташа"");то получите от компилятора сообщение об ошибке. Вспомните, параметр, передаваемый функции puts(), должен начинаться и заканчиваться кавычками, чтобы компилятор Си знал, где начинается и где заканчивается строка. В приведенном выше ошибочном примере, компилятор будет интерпретировать параметр как «Мы зовем ее» с дополнительными символами «Наташа""», которые расположены снаружи по отношению к паре двойных кавычек, но внутри пары скобок, содержащих параметр для вызова функции puts(). Для компилятора в такой строке оказывается слишком много информации.
Приведем теперь правильную запись этой инструкции:
puts("Мы зовем ее \"Наташа\"");
Рис. 4.3. Отображение символов «кавычки»
На рис. 4.3 показано, каким образом компилятор интерпретирует эту строку.
Кроме кавычек и обратной косой черты, вы можете использовать управляющие коды для отображения различных графических символов. IBM PC и совместимые компьютеры могут отображать набор символов, известных как расширенный набор ASCII-символов. Он включает в себя все буквы, цифры и знаки препинания, которые можно ввести с клавиатуры, а также некоторые графические символы и греческие буквы*. Каждый символ в наборе имеет собственный номер, например, номер 3 соответствует символу «сердечко» (по карточной терминологии — «черви»). Чтобы отобразить символ на экране, надо поместить соответствующий ему номер (в виде трех цифр) после знака обратной косой черты:
putchar('\003');В результате выполнения этой инструкции на дисплей выводится символ «сердечко». Для того чтобы отобразить символы всех карточных мастей, используйте следующую программу:
______________________________
* В русифицированных наборах — буквы русского алфавита. (Прим.перев.)
main(){puts("Черви \003\n");puts("Бубны \004\n");puts("Трефы \005\n");puts("Пики \006\n");}Функция puts() выведет на экран названия всех карточных мастей и соответствующие им графические символы (рис.4.4). В табл.4.1 приведены некоторые символы, которые могут быть изображены только путем использования их кодов.
Рис. 4.4. Отображение графических символов по их кодам
Для отображения графических символов можно использовать и функцию putchar() за счет двойственности символьных переменных. Если вы определили переменную типа int, ей, понятное дело, можно присвоить числовое значение:
Если затем вы используете эту переменную как параметр, передаваемый функции putchar()
putchar(count);символ, ассоциированный со значением переменной, будет отображен на экране.
Таблица 4.1. Некоторые используемые коды символов.
Один из символов в наборе ASCII не появляется на экране, зато при попытке вывести его раздается звонок! Использование escape-последовательности \007 приводит к подаче звукового сигнала встроенным динамиком вашего компьютера. Приведенная ниже программа дважды подает звуковой сигнал, привлекая внимание к сообщению на экране:
#define BELL '\007' /* BELL легче запомнить, чем \007 */main(){putchar(BELL); /*Подача звукового сигнала*/putchar(BELL); /*Подача звукового сигнала*/puts("Вниманию покупателей!\n");puts("В отделе спортивных товаров \ проводится сезонная распродажа\n");}Директива #define определяет константу BELL со значением \007. И хотя для определения константы вам пришлось ввести с клавиатуры четыре символа, компилятор воспримет ее как обычную символьную константу. Сигнал динамика слышится тогда, когда вы пытаетесь вывести константу BELL на дисплей с помощью функции putchar().
|