
- •1.Операции с адресами
- •2.Переменная указатель
- •3.Операции над переменными указателями
- •4.Указатели и массивы
- •5.Описание функции
- •11.Варианты описания и использования функций. Аргументом функции является двухмерный массив (матрица).
- •12.Варианты описания и использования функций. Аргументом функции является другая функция.
- •Void f1(тип (*агтс)(тип1б тип2б…)б…)
- •13.Динамическая память «куча». Функции выделения и освобождения памяти.
- •14.Символьные строки. Определение, отличие от последовательности символов.
- •15.Объявления строковых данных (перечислить способы). Задание строки в форме строковой константы.
- •21.Основные функции для работы со строками.
- •22.Обязательная последовательность действий при работе с файлами. Описание файловой переменной.
- •23.Открытие файла.
- •24.Чтение данных из файла
- •25.Запись данных в файл
- •26.Закрытие файла. Необходимость выполнения этого действия.
- •27.Дополнительные функции работы с файлом.
- •28.Локальные и глобальные переменные.
22.Обязательная последовательность действий при работе с файлами. Описание файловой переменной.
При работе с файлами необходимо выполнять следующую последовательность действий:
описать переменную-указатель на файл
открыть файл, указав тип работы с данными файла(чтение/запись)
произвести чтение или запись данных
закрыть файл
произвести вспомогательные действия с файлом:
проверка конца файла
проверка ошибки
Описание файловой переменной. Для этого используется специальный тип FILE *F .
23.Открытие файла.
Для открытия файла используется функция F1 = fopen(“путь к файлу”, “тип работы с файлом”). Указывая путь к файлу следует использовать следующие спецификации: c:\\system\\... или c:/system/…
Типы работы с файлом:
‘w’ – запись в файл
‘r’ – чтение из файла
‘w+’ – запись с возможностью чтения
‘r+’ – чтение с возможностью записи
‘a’ – добавление данных
‘wb’ - запись бинарных данных
‘rb’ - чтение бинарных данных
В результате работы данной функции в памяти компьютера выделяется память размером 512 байт. Адрес начала этого буфера записывается в переменную F1
24.Чтение данных из файла
Для чтения из файла используется функции fscanf(F1, “format”, var), где F1 – указатель на файл, “format” - форматная спецификация, var – адрес переменной, куда считывается, и fgets(str,maxN,F1), где str – строковая переменная, maxN – максимальное количество символов, которое хотим считать, F1 – указатель на файл.
Для чтения бинарных файлов используется функция fread(void*ptr, size t_size, size t_N).
25.Запись данных в файл
Для записи данных используется функции fprintf(указатель на файл, форматные спецификации, список ппеременных) и fputs(строковая переменная, файл).
Для записи бинарных данных используется функция fwrite(const void*ptr, size), где const void*ptr- указатель на значение, которое хотим сохранить в битовом виде, size – размер в байтах. Функция возвращает количество элементов сохранённых данных.
26.Закрытие файла. Необходимость выполнения этого действия.
Для закрытия файла используется fclose(F1). Выполнять обязательно, если производилась запись данных в файл. Это связано с тем, что обмен данными из файла производится через буфер данных. При выполнении команды записи в файл данные на самом деле записываются в ОЗУ в буфер-файлы. Перезапись их на диск выполняется в случае, когда буфер либо заполнен до конца либо выполняется функция fclose().
27.Дополнительные функции работы с файлом.
feof(указ.) – определяет располагается ли курсор в конце файла.
ferror(указ.) – производит проверку файла на ошибку и возвращает «0», если ошибок не обнаружено, и код ошибки, если она существует.
Функции для изменения позиции указателя в файле. Позиция указателя файла изменяется при выполнении действий с файлом:
открытие файла
При чтении или записи в файл-указатель смещается на следующую позицию.
Изменение позиции курсора файла с помощью специальных функций:
Void rewind(File*stream) устанавливает указатель файла в начало
Int fseek(File*stream, на сколько сместить, относит. чего сместить). 3-й аргумент может принимать следующие значения:
SEEK_SET – ‘0’
SEEK_CUR – относительно текущей позиции
SEEK_END относительно конца файла
int fsetpos(File*stream, const fpos_t* pos;)
Текущую позицию указателя в файле можно получить при помощи функции
int fgetpos(File*stream, fpos_t * pos)
Все три выше описанные функции возвращают целочисленное значение, которое является признаком выполнения функции. Если ноль, то успешно, иначе – код ошибки.
Значение текущей позиции указателя long ftell(File*strteam ).