Отображение специальных символов на экране монитора — КиберПедия 

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

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

Отображение специальных символов на экране монитора

2017-09-28 314
Отображение специальных символов на экране монитора 0.00 из 5.00 0 оценок
Заказать работу

Вы можете использовать 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, ей, понятное дело, можно присвоить числовое значение:

int count;count=5;

Если затем вы используете эту переменную как параметр, передаваемый функции 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().

Замечания по Си++
Если вы чувствуете в себе силы, то можете познакомиться с некоторой дополнительной информацией о специальных символах. Вы можете найти описание набора ASCII-символов во многих руководствах по компьютерам и печатающим устройствам. Обычно номера кодов приведены в десятичной и шестнадцатеричной системах счисления. Некоторые компиляторы Си воспринимают запись в этих форматах, но стандарты Си K&R и ANSI подразумевают использование восьмеричных кодов. Применяйте восьмеричные коды (приведенные в табл.4.1) для совместимости с любыми компиляторами Си. Расширенный набор ASCII-символов содержит все буквы и символы, которые можно отобразить на экране монитора, а не только те, которые вводятся непосредственно с клавиатуры. В некоторых источниках вы можете найти его подмножество, набор ASCII-символов, который включает только коды от 0 до 127 в десятичной системе счисления. Сюда входят только символы, которые можно ввести с клавиатуры.

 


Поделиться с друзьями:

Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...

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

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.007 с.