Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Моя первая программа на С++.docx
Скачиваний:
3
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

Код «перевод страницы»

Когда вы посылаете информацию на печатающее устройство (как именно это делается, вы узнаете поз- же), код «перевод страницы» \f вытягивает из него текущую страницу. Этот код распознается большинст- вом принтеров.

После вывода сообщения на печать, большинство программистов использует код «перевод страницы», чтобы быть уверенными в том, что страница с последним сообщением готова и на нее не будет печататься другая информация. Если вывести изображение этого кода на экран при помощи функции puts() или putchar(), он появится в виде маленького графического символа, который никак не влияет на остальную информацию, отображаемую на дисплее.

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

Вы можете использовать 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().

¶a++ae æepcue u+uru æɵuyye+a sneuwpo++ɵu usgawenacwæou "Books-shop".

Pacupocwpa+e+ue, upogaua, uepesauuca ga++on u+uru unu ee ¬acwen 3AMPE[EHª.

O æcex +apyue+uex upoca6a coo6yawa uo agpecy piracy@books-shop.com

Многогранная функция printf()

Функции puts() и putchar() используются довольно часто, но, к сожалению, их возможности несколько ог- раничены. Ни одна из них не может обеспечить вывод числовых данных, и обе они имеют только один аргумент (параметр). Это означает, что обе функции могут отобразить только один объект.

Языки Си и Си++ имеют более многостороннюю функцию, называемую printf(). Она позволяет выводить на дисплей данные всех типов и работать со списком из нескольких аргументов. Кроме того, при вызове функции printf() можно определить способ форматирования данных.

В простейшем случае функцию printf() можно использовать вместо функции puts() для вывода строки: