- •Подготовка программы к исполнению
- •Директива препроцессора #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
- •Примеры записи и чтения из файла
Операторы передачи управления
Формат оператора: continuo ;
Оператор направляет поток управления внутри цикла. Он заставляет прекратить текущую итерации цикла и немедленно начинает следующую. Оператор continuo может использоваться только внутри тела операторов while, for, do while.
Формат оператора: break ;
Использование оператора состоит в том, чтобы завершить выполнение цикла досрочно. Оператор вызывает выход из оператора while, for, do while, switch. Управление передается оператору, непосредственно следующему за оператором цикла или переключателем.
ФОРМАТИРОВАННЫЙ ВВОД-ВЫВОД ДАННЫХ ТЕКСТОВЫХ ФАЙЛОВ
Функции для форматного ввода данных
Форматный ввод данных осуществляется с помощью функций scanf, fscanf, sscanf и cscanf. Все названные функции вводят значения, интерпретируют их в соответствии с "типом форматов, преобразуют их'в соответствии с типом аргументов и присваивают введенные значения переменным. Правила использования форматов и аргументов этих функций идентичны. Рассмотрим их более детально.
Прототип функции scanf:
int scanf (char * format [ , arg...] );
С помощью функции scanf осуществляется ввод данных из стандартного вводного потока stdin (с клавиатуры) в переменные, адреса которых задаются аргументами (arg). Функция имеет переменное количество параметров. Значение первого параметра format определяет адрес строки, которая управляет интерпретацией элементов ввода. Последующие аргументы представляют собой список адресов, переменных, значения которых должны быть введены в соответствии с форматами параметра format. Каждый последующий аргумент должен быть указателем на переменную типа, совместимого с типом, определенным очередным форматом в параметре format. Строка format обрабатывается слева направо: первому формату соответствует первый аргумент, второму - второй и т. д.
Прототип функции fscanf:
int fscanf (File * stream, char * format [ , arg ... ], );
где stream - указатель для файла, из которого производится ввод.
Функция читает данные из файла, связанного с указателем stream.
Прототип функции sscanf:
int sscanf (char * string, char * format [ , arg ... ], );
где string - указатель на строку, из которой производится ввод, Функция sscanf читает данные из строки string.
Прототип функции cscanf:
int cscanf (char * format [ , arg ... ], );
Функция cscanf читает данные, введенные с консоли (с клавиатуры). Возвращаемое значение функций типа scanf.
- количество успешно введенных и присвоенных значений;
- значение 0, если ввод неудачен, нет значений, которые введены и присвоены переменным;
- значение EОF, если чтение производится по концу файла.
Все функции типа scanf вводят последовательно значения из полей входного потока, интерпретируя их в соответствии с их форматом. Первое введенное значение интерпретируется в соответствии с первым форматом строки format, преобразуется в форму хранения переменной аргумента и заносится по адресу первого аргумента. Значение из следующего поля интерпретируется в соответствии со вторым форматом и т. д. до конца строки format.
Если количество форматов в строке scanf c больше, чем аргументов - указателей вводимых значений:
- при вводе данных с клавиатуры система останавливается и ожидает ввода данных для лишних форматов;
- при вводе из файла с помощью fscanf - результат не определен. . .
Если аргументов в списке больше, чем форматов в строке format, лишние аргументы игнорируются, не получают новых значений.
... Соответствие типов форматов типам переменных аргументов не контролируется транслятором. То есть можно определить формат “%f” для переменной типа int. Но при выполнении программы это несоответствие приведет к аварийному завершению программы.
Если при вводе очередных значений из входного файла в нем встретился символ конца строки (\n), а форматы и элементы списка аргументов не исчерпаны, происходит автоматический переход на следующую строку входного потока и ввод продолжается со следующей строки. То есть при переходе к следующему полю функция fscanf может "перешагивать" через границы строк. Таким образом, если с помощью fscanf вводится последовательно ряд значений из ряда строк текстового файла, длины которых не кратны количеству позиций, вводимых за одно выполнение функции fscanf, то ввод очередных значений начинается с позиции, на которой закончен предыдущий ввод.
Форматы ввода данных
Строка описания форматов ввода может содержать: