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

17 Равно 11 в шестнадцатеричной и 21

в восьмеричной системах счисления

Значение числа в восьмеричной системе счисления может понадобиться для вывода графических симво- лов. Если соответствующий символу номер известен в десятичной системе, можно использовать програм- му, подобную приведенной выше, для перевода его в восьмеричную.

Двойственность символьных переменных

При описании функции putchar() уже говорилось, что символьные переменные могут быть заданы и как целочисленные. Следовательно, можно присвоить букву в качестве значения переменной типа int и вы- вести ее на дисплей при помощи функции putchar() или printf():

main()

{

int a; a = 'A';

putchar(a); putchar('\n');

printf("%c", a);

}

При выполнении этой программы символ А появится дважды: один раз как символ, отображенный функ- цией putchar(), второй раз как символ, отображенный функцией printf() с использованием указателя фор- мата %c. Независимо от того, определен тип переменной как char или int, можно преобразовать символ в его ASCII-код:

main()

{

char a; a = 'A';

printf("ASCII-код символа %c равен %d", a, a);

}

В этом примере одно и то же значение переменной выводится на дисплей с использованием указателей формата %c и %d. В результате получаем следующее сообщение:

ASCII-код символа А равен 65

где присутствует символ А, отображенный с использованием указателя формата %c, и число 65, являю- щееся ASCII-кодом символа А, выведенное с помощью указателя формата %d.

Программа будет работать точно так же, и в результате мы получим ту же фразу, если переменная а будет определена как int.

Форматированный вывод

Функцию printf() можно использовать для управления форматом данных. Определять величину пробелов и количество выводимых символов можно с помощью указателей ширины поля*.

Без указателя ширины поля числа с плавающей точкой, например, будут выводиться с шестью знаками после точки. Поэтому в результате выполнения инструкции

printf("Стоимость составляет %f за

%d штук", amount, count);

и появляется строка:

Стоимость составляет 45.580000 за 5 штук

В зависимости от особенностей системы и от того, как ведется расчет среднего значения, может появиться и что-нибудь в таком роде:

Стоимость составляет 45.579998 за 5 штук

Рис. 4.12. Определение количества знаков после точки

* Буквальный перевод английского термина field-width specifiers. (Прим.перев.)

Мы используем указатель ширины поля для того, чтобы придать желаемый вид числам и тексту, выводи- мым на экран.

Чтобы определить число знаков после точки, используется указатель %.nf, где число n определяет коли- чество знаков (рис.4.12). Например, если написать:

printf("Стоимость составляет %.2f", amount);

то при выводе значения переменной с типом float оно будет иметь только два знака после точки:

Стоимость составляет 45.58

Сходным образом, если написать:

printf("Стоимость составляет %.3f", amount);

значение переменной будет представлено с тремя знаками после точки:

Стоимость составляет 45.580

На рис.4.13 приведено несколько примеров определения количества знаков в десятичной части перемен- ной.

Рис. 4.13. Примеры определения количества знаков в десятичной части

Можно также определить общую ширину поля, то есть размер (в символах) пространства, занимаемого выводимым числом, если использовать следующий формат:

%N.nf

где N— это общая ширина поля.

Если задать инструкцию