- •Подготовка программы к исполнению
- •Директива препроцессора #include
- •Математические функции из библиотеки cmath
- •Заголовок функции main
- •Объявление переменных.
- •Объявление переменных простого типа
- •Объявление констант простого типа
- •Перечисляемые переменные.
- •Логические операции
- •Операторы
- •Операторы сложные
- •Составной оператор
- •Структурированные операторы
- •Условный оператор.
- •Блок-схема оператора разветвления
- •Условная операция.
- •Операция «запятая» в операторе if.
- •Преобразование и привидение типов.
- •Оператор выбора варианта.
- •Блок-схема оператора варианта
- •Цикл по счётчику
- •Цикл c предусловием.
- •Цикл c постусловием.
- •Операторы передачи управления
- •1) Спецификации формата, которые определяются символом % - для выделения, контроля и преобразования соответствующих им введенных значений;
- •2) Любые символы, которые могут быть во входном потоке и которые надо игнорировать:
- •2) Первого символа, который не соответствует формату (например, буква или пробел после выделения числа); .
- •3) Заданной длины поля вводимого значения, если она определена в формате.
- •4.2.2. Форматы вывода данных
- •1) Спецификации формата, которые определяются символом % - для вывода .Значений, определенных списком аргументов, если они есть;
- •2) Любые символы, которые должны быть выведены в выходной поток;
- •2 Позиции отводятся для знака числа и точки.
- •Составные типы данных
- •Обработка двумерного массива
- •Указатели
- •Порядок выполнения операций над указателями
- •Арифметические операции над адресами
- •Операторы распределения памяти new и delete
- •Указатели и динамические массивы
- •Указатели и спецификатор const
- •Массивы указателей
- •Организация динамического двумерного массива
- •Функции работы со строками
- •Действия, производимые над строками и их правила Присвоение
- •Конкатенация строк
- •Копирование строк
- •Определяет длину строки
- •Указатели и строки
- •Введение в класс string
- •Структуры
- •Ссылочные переменные
- •Функции
- •Функции, имеющие возвращаемый параметр с помощью оператора return.
- •Объявление формальных параметров
- •Ввод - вывод записей
- •Дополнительные возможности работы с файлами
- •Работы с файлами и стандартный класс mfc cFileDialog.
- •Работа с файлами с помощью mfc( классы cFile, cStdioFile, ... ) и стандартный класс mfc cFileDialog.
- •Класс cFile
- •Класс cMemFile
- •Класс cStdioFile
- •Примеры записи и чтения из файла
4.2.2. Форматы вывода данных
Строка описания форматов вывода может содержать:
1) Спецификации формата, которые определяются символом % - для вывода .Значений, определенных списком аргументов, если они есть;
2) Любые символы, которые должны быть выведены в выходной поток;
3) управляющие коды, то есть Esc-последовательности для управления процессом вывода (см. табл. 17).
Форматы начинаются с символа % и имеют следующую форму:
% [ flags ] [ w ] [ .p ] [ F | N | h | l | L ] тип
где flags - управляет выравниванием выводимых символов;
w - width - ширина - минимальное количество выводимых символов, размер
поля для вывода значения;
р - precision - точность - определяет максимальное количество выводимых
символов или положение десятичной тoчки числа;
F, N - определяют тип адресации при выводе указателей;
h, l, L - определяют уточнение аргумента: short, long или double.
В квадратных скобках указаны необязательные элементы формата.
Каждое поле формата это символ или число. Тип определяет, как будет интерпретироваться аргумент, соответствующий данному формату: как символ, строка или число. В простейшем случае формат может иметь символ % и тип. Например:
Тип
|
Выводимое значение
|
Тип аргумента
|
d, i |
десятичное целое со знаком |
int |
о |
восьмеричное целое без знака |
int |
u |
десятичное целое без знака |
unassigned int |
x
|
шестнадцатеричное целое без знака, использующее символы "аЬсdef" |
int |
X |
“—” "АВСDEF" |
int / long int |
е, Ё |
число с плавающей точкой |
float / double |
f, F |
число с фиксированной точкой |
float / double |
с |
символ, в том числе пробел |
char |
s |
строка |
сhаr |
Состав и назначение символов flags:
- - результат прижимается в выделенном для него поле влево, оставляя справа пробелы; по умолчанию все результаты в выделенном поле прижимаются вправо;
+ - выводит перед числом + или -; по умолчанию - только -;
_ - добавляет при выводе положительных чисел слева от числа пробел вместо знака +;
# - при выводе по форматам о,х или X добавляется префикс числа: 0, 0х или 0X соответственно.
Поле w - неотрицательное десятичное целое; определяет минимальное количество выводимых символов. Если количество выводимых символов меньше, слева или справа от него (в зависимости от значения flags) остаются пробелы. Если количество выводимых символов больше, чем задано w, или w не задано вообще, выводятся все символы аргумента (в том числе - все целые разряды числа).
Поле р - precision - неотрицательное целое, определяет:
- при выводе целых значений форматами d, i, o, u, x, X - вывод не менее р цифр; если их меньше, слева добавляются нули;
- при выводе вещественных значений форматом f или lf - количество дробных разрядов;
- при выводе вещественных значений форматом е или le - разрядность дробной части выводимой мантиссы;
- при выводе строк форматом s: точное количество символов, которое должно быть выведено; если выводимая строка содержит символов больше, чем значение р, лишние правые символы не выводятся;
- на вывод символов форматом с значение р не влияет.
Форматом “%hi” можно выводить целые значения <= 32767.
Форматы с l - уточнением аргумента: "%ld", “%lo", "%lu", "%lx" - можно использовать только для вывода данных уточненного типа; например "%ld” можно использовать только для вывода значений типа long; а "%lf” и “%le" - для float и double. Форматами “Lf” и “Le” можно выводить только значения типа long или double.
Если за символом % следует символ, не являющийся символом формата, % просто копируется в выводной поток как обычный символ. Все неформатные символы строки format просто копируются в выходной поток в порядке их следования в строке format. Например, оператор:
printf ( "Первая строка % \nВторая строка\n" ) ;
выводит:
Первая строка %
Вторая строка
Обычные символы могут быть в строке format вперемежку с форматами аргументов, например, для идентификации выводимых значений:
printf ( " а = %d b[%d] = %f st = %s\n", a, i, b[ i ], st ) ;
Этот оператор может вывести:
а = 123 b[2] = 1.234567 st = ВСЕ
Форматный вывод арифметических данных
Для вывода целых чисел можно использовать форматы вида:
"%d”, “%wd”, “%w.pd”, “%.pd”.
При выводе целых чисел форматами типов d, i, u, о, х, X значение поля р определяет минимальное количество цифр, которые будут выведены. Если количество выводимых разрядов числа меньше заданного р, выводимое значение дополняется слева нулями, например, для формата "%.5d” может быть выведено: 00123.
Ниже приведен пример программы для вывода значений ряда инициализированных переменных различными форматами с помощью fprintf и результаты ее выполнения.
В примере в строке для вывода заголовка таблицы каждый символ % удвоен для вывода одного символа %.
Для вывода числа типа float в форме с фиксированной точкой можно использовать форматы вида: "%f, "%wf”, "%w.pf” или "%.pf”.
Для вывода числа в форме с плавающей точкой (в экспоненциальной форме, в виде мантиссы и порядка) можно использовать форматы вида: "%е", "%wе", "%w.ре" или "%.ре".
Для форматов вида "%f, "%wf", "%е" и "%we” по умолчанию р = 6.
При выводе значений с помощью форматов типа "%f” выводимое значение со знаком имеет форму: [-]ссс.dddd где:
ссс - один и более целых разрядов; количество целых разрядов зависит от величины выводимого значения; всегда выводятся все разряды целой части значения;
dddd - р дробных разрядов; для р = о дробные разряды и точка не выводятся.
Для вывода форматом типа "%f” минимальное значение поля w можно определить по формуле: w = р + k + 2, где:
р - количество дробных разрядов;
к – количество целых разрядов;