- •1. Введение.
- •2. Общие положения.
- •3. Форматирование ввода-вывода средствами языка с
- •4. Функция printf()
- •6. Оператор printf - вывод целых чисел в восьмиричном и
- •10. Оператор printf - вывод значений типа char
- •11. Оператор printf - вывод чисел с плавающей точкой в
- •12. Оператор printf - вывод чисел с плавающей точкой в
- •13. Оператор printf - вывод текстовых строк
- •15. Оператор printf - вывод значений со знаком
- •16. Оператор printf - форматирование вывода целого значения
- •18. Оператор printf - вывод префикса перед восьмиричными и
- •19 . Оператор printf - форматирование чисел с плавающей точкой
- •20. Оператор printf - форматирование экспоненциального представления
- •21. Оператор printf - вывод с выравниванием слева
- •22. Оператор printf - комбинирование спецификаторов формата
- •23. Оператор printf - перенос символьной строки
- •24. Оператор printf - вывод текстовых строк по near- и far-указателям
- •25. Оператор printf - работа с Esc-символами
- •26. Оператор printf - определение количества выводимых символов
- •27. Оператор printf - использование возвращаемого значения
- •28. Ansi-драйвер
- •29. Использование ansi-драйвера для очистки экрана
- •30. Использование ansi-драйвера для управления цветом на экране
- •31. Использование ansi-драйвера для позиционирования курсора
- •33.Ввод и вывод одного символа
- •35.Буферы
- •36. Чтение одной строки
- •37. Функции ввода-вывода символов
6. Оператор printf - вывод целых чисел в восьмиричном и
шестнадцатиричном представлении
Функция printf поддерживает спецификаторы формата, обеспечивающие ее информацией о типах параметров (таких как int, char и т.д.). В зависимости от назначения программы, могут возникнуть случаи, когда требуется вывести целые числа в восьмиричном (по основанию 8) или шестнадцатиричном (основание 16) виде. Спецификатор формата %о в функции printf предписывает отображение соответствующего значения в восьмиричном виде. Спецификаторы %х и %Х предписывают вывод в шестнадцатиричном виде. Различие между %х и %Х состоит в том, что последний отображает значение прописными буквами (в верхнем регистре). Следующая программа ОСТ_НЕХ.С демонстрирует использование спецификаторов формата %о, %х и %Х:
#include <stdio.h>
void main()
{
int value = 255;
printf("Десятичное значение %d в 8-ричном виде равно %о\n ", value,value);
printf("Десятичное значение %d в 16-ричном виде равно %х\n ", value, value);
printf("Десятичное значение %d в 16-ричном виде равно %Х\n ", value, value);
}
После компиляции и выполнения этой программы на экран будет выведено:
Десятичное значение 255 в 8-ричном виде равно 377
Десятичное значение 255 в 16-ричном виде равно ff
Десятичное значение 255 в 16-ричном виде равно FF
. 7. Оператор printf - вывод значений типа unsigned
Функция printf поддерживает спецификаторы формата, обеспечивающие ее информацией о типах параметров (таких как int, char и т.д.). Для отображения с помощью printf значений типа unsigned int следует использовать спецификатор формата %u. Если вместо %u используется %d, то printf будет интерпретировать заданное значение как значение типа int, что может привести к выводу неверного значения. В следующей программе U_INTOUT.C спецификаторы формата %u и %d используются для вывода на экран значения 42000. Программа иллюстрирует также типичную ошибку, которая может возникнуть при использовании неподходящего спецификатора формата:
#include <stdio.h>
void main()
{
unsigned int value = 42000;
printf("Вывод 42000 как unsigned %u\n ", value);
printf("Вывод 42000 как int %d\n ", value);
}
После компиляции и выполнения программы на экран будет выведено:
С:\>U_INTOUT <ENTER>
Вывод 42000 как unsigned 42000
Вывод 42000 как int -23536
8. Оператор printf - вывод значений типа long
Функция printf поддерживает спецификаторы формата, обеспечивающие ее информацией о типах параметров (таких как int, char и т.д.). Для отображения с помощью printf значений типа long int следует использовать спецификатор формата %ld. Если вместо %ld используется %d, printf будет интерпретировать значение как значение типа int, что может привести к выводу неверного результата. Следующая программа LONGOUT.C использует спецификаторы формата %ld и %d для вывода значения 1000000. Программа также иллюстрирует ошибку, которая может возникнуть при использовании неподходящего спецификатора формата:
#include <stdio.h>
void main()
{
long int one_million =1000000;
printf ("Один миллион равен %ld\n ", one_million);
printf ("Один миллион равен %d\n ", one_million);
}
После компиляции и выполнения программы экран будет выведено:
Один миллион равен 1000000
Один миллион равен 16960
9. Оператор printf - вывод значений типа float
Функция printf поддерживает спецификаторы формата, обеспечивающие ее информацией о типах параметров (таких как int, char и т.д.). Для отображения с помощью printf значений типа float следует использовать спецификатор формата %f. Следующая програм ма FLOATOUT.C демонстрирует использование спецификатора формата %f для вывода значений с плавающей точкой:
#include <stdio.h>
void main()
{
float price = 525.75;
float sales_tax =0.06;
printf("Стоимость продукта равна %f\n ", price);
printf("Налог с продажи продукта равен %f\n ", price * sales_tax);
}
После компиляции и выполнения программы на экран будет выведено:
Стоимость продукта равна 252.750000
Налог с продажи продукта равен 31.544999
Как можно заметить, по умолчанию спецификатор формата %f форматирует вывод в минимальном объеме. Описание дополнительных способов форматирования вывода, осуществляемого с помощью инструкции printf, будет представлено далее.