- •Подготовка программы к исполнению
- •Директива препроцессора #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
- •Примеры записи и чтения из файла
Дополнительные возможности работы с файлами
Анализ и упровление положением уазатля файл производится с помощью фунций feof, fseek, rewind. Положение курсора в файле можно определить с помощью функции feof .
Прототип фукции feof:
Int feof (FILE * stream);
Возвращаемое значение фунции feof:
- нуль, если коец файла не достигнут;
- не нуль, если конец файла достигнут.
При чтении из файла с помощью функций fgets или fscanf признк конца файла формируется сразу после считывания последних данных файла. Поэтому конец файла в этих случаях можно обнаружить из анализа значения результата вызова функции feof. Пример:
while (! feof (fp)) { fgets (str,50,fp); … …}
При посимвольном чтении файла конец файла можно обнаружить с помощью анализа результата чтения:
while ((c = getc(fp)) != EOF) {… …
Если с помощью fread прочитана из файла последняя запись и достигнут конец файл, функция feof возвращает не нуль только после очередной попытки чтения из файла и сохраняет его до тех пор, пока файл не будет закрыт или не будет вызвана функция rewind. Так как значение feof(!=0) обнаруживается только после очередной неудачной попытки чтения из файла с помощью оператора fread, то для обнаружения конца файла лучше применять fread. Пример: while(fread(&zapst,sizeof(stud),1,fp))
Фунция fread возвращает результат, равный 1, только при успешном чтении и нуль – при неуспешном, при этом условие цикла станет ложным, и выполнение цикла станет ложным.
Для чтения или записи данных в заданное место файла используют функцию fseek, с помощью которой указатеь устанавливается в заданное место файла. Прототип функции:
Int fseek (FILE * stream, long offset, int nach);
- stream – указатель переменной типа FILE;
- offset – смещение указателя в байтах относиельно начала, заданного параметра nach;
- nach – начальная точка, от которой производится смещение.
Функция fseek перемещает указатель файла , связанный с потоком stream, на новое место, которое определяется значением offset и nach. Следующая операция в/в будет выполнена, начиная с той позиции, на которую будет перемещен указатель. Параметр nach определяет начальную точку, от которой производится смещение, и может иметь значение одной из следующих констант, определенных в stdio.h:
SEEK_SET = 0; - от начала файла;
SEEK_CUR = 1; - от текущего положения указателя файла;
SEEK_END = 2; - от конца файла.
Попытка переместитьуказатель за начало файла фызывает ошибку. Возвращаемое значение:
0 – если указатель перемещен успешно;
!0 – не нуль, если произошла ошибка.
Примеры обращения к функции fseek:
fseek(fp, -n, 1); - на n байтов назад от текущей позиции;
fseek(fp, -m, SEEK_CUR); - на m байтов назад от текущей позиции;
fseek(fp, 100L, 0); - на 100 байтов от начала файла.
С помощью функции rewind можно установить указатель, связанный с файлом, на начало файла. Прототип функции:
void rewind (FILE * stream);
Эквивалентно вызову: fseek(fp, 0L, 0); или fseek(fp, 0L, SEEK_SET);
Функция rewind очищает признак конца файла и признак ошибки.
Удалить файл можно с помощью функцией remove. Прототип функции:
Int remove ( const char * filename);