- •Подготовка программы к исполнению
- •Директива препроцессора #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
- •Примеры записи и чтения из файла
2 Позиции отводятся для знака числа и точки.
При выводе значений с помощью формата типа “%е” выводимое значение со знаком имеет форму:
[ - ] m.dddd +/- 0DD
где т - один разряд значения мантиссы до точки;
dddd - нуль и более (р) разрядов мантиссы после точки;
DD - два десятичных разряда порядка.
Для вывода форматом типа "%е" минимальное значение поля w можно определить по формуле: w = (р + 1) + 6. Кроме р + 1 позиции для размещения мантиссы требуются еще 6 позиций: 4 позиции для размещения порядка и по одной позиции для знака числа и точки.
Если поле w, определенное в формате %f, недостаточно для размещения целой части вещественного значения, система выделяет минимальное поле для ее размещения (поле для знака + не выделяется).
Если поле W, определенное в формате, больше минимального, то выводимое значение смещается в поле вправо или влево в зависимости от значения flags, оставляя слева или справа пробелы.
При выводе вещественных значений форматами типа "%f” и "%е" точка выводится только тогда, когда число выводится с дробной частью. То есть для форматов вида "%w.0f, "%.0f, "%w.0e" и "%.0е” точка не выводится. Последняя десятичная цифра выводимого значения может быть результатом округления.
На рис. ниже приведен пример программы для вывода вещественного значения различными вариантами форматов типа f и е и результаты ее выполнения.
Из результатов, приведенных на рис., очевидно, что при выводе данных типа float форматом типа е:
1) для р = 0, то есть для форматов "%ю.0е" и "%.0е", выводится только 1 разряд округленной мантиссы до точки;
2) для р >= 1 выводится 1 разряд до точки и р разрядов после точки; если число содержит > р + 1 разряда числа, то выводится только часть числа, округленная до р + 1 разряда.
Пример форматного вывода значений в строку с помощью sprintf:
sprintf (str, “ i = %d r = %f”, i, r);
Значения переменных i и r выводятся в строку str со своими именами, например, в виде: i = 123, r = 4.567890.
Форматный вывод символьных и строковых данных
Для вывода символов используется формат типа в”%с", а для вывода строк формат типа "%s". Особенности вывода символов и строк рассмотрим на примерах. Ниже приведена программа, с помощью которой можно вывести в файл символы, заданные i-кодами, по 10 значений в строке.
(пример старой версии)
# include <stdio>
FILE *f;
void main ()
{int i; f = fopen ( “14vivsim.res”, “w” ) ;
for ( i = 27; i < 255; i++)
{ fprintf (f, “ %3d = %c”, i, i ) ;
if ( (i - 26) % 10 = = 0 ) fprintf (f, “\n”) ; } fclose (f) ;
}
При выводе символов и в списках форматов можно использовать символьные константы - управляющие коды и esc-последовательности. Примеры управляющих кодов даны в табл. ниже.
С помощью управляющих кодов можно формировать документ требуемой формы. Например, с помощью кода \r можно несколько раз выводить данные на одной и той же строке: расставить граничные символы, а затем вывести требуемые значения в соответствующие графы таблицы.
Код |
Назначение кода |
\n |
новая строка |
\b |
возврат на 1 символ |
\r |
возврат в начало строки |
\f |
прогон бумаги до конца страницы |
\\ |
вывод символа “\” |
\’ |
вывод апострофа |
\” |
вывод кавычек |
\? |
вывод знака вопроса |
\a |
короткий звуковой сигнал |
\07 |
“—“ |
В программе на рис. 16 из каждой строки исходных данных вводится 15 символов в элементы массива:
d[ i ] [ 0 ] / d[ i ][ 14 ]. В d[ i ][15] вводится признак конца строки: d[ i ][15] = \n. В соответствии с правилами работы функции fgets формируется: d[ i ][16] = \0. После ввода значения строки d[ i ] оно выводится с помощью fprintf.
Для вывода строк можно использовать следующие виды форматов:
"%s” - вывод всех символов строки;
“%ws” - вывод строки в поле w до первого символа \0;
если поле недостаточно, строка выводится полностью;
“%w.ps”- вывод р символов в поле w;
"%.рs" - вывод р символов строки в поле w = р.
Ниже приведен пример вывода символьной строки с помощью различных форматов типа %s и результаты ее выполнения.