В заключение рассмотрим наиболее распространенные функции, с помощью которых можно организовать работу с файлами:
intfileno (FILE *f) – определяет и возвращает значение дескриптора (fd) файла f, т.е. число, определяющее номер файла;
longfilelength (intfd) – возвращает длину файла, имеющего дескриптор fd , в байтах;
intchsize (intfd, longpos) – выполняет изменение размера файла, имеющего номер fd, признак конца файла устанавливается после байта с номером pos;
intfeof (FILE *f) – возвращает ненулевое значение при правильной записи признака конца файла;
intfgetpos (FILE *f, long *pos) – определяет значение текущей позиции pos файла f.
Пример программы работы с файлом структур
Создать программу, в которой реализованы создание, добавление и просмотр файла, содержащего информацию о фамилии и среднем балле студентов. Процесс добавления информации заканчивается при нажатии точки.
// Функция обработки ошибочной ситуации при открытии файла
FILE* Open_file(char *file, char *kod)
{
FILE *f;
if(!(f = fopen(file, kod))) {
puts("Open File Error!");
exit(1);
}
return f;
}
Советы по программированию
При выполнении вариантов заданий придерживайтесь следующих ключевых моментов.
1. Объекты типов структуры и объединения применяются для логически связанных между собой данных различных типов.
2. После описания шаблона структурного типа данных ставится точка с запятой.
3. Элементы данных, входящие в структуры и объединения, называются полями. Поля могут быть любого базового (стандартного) типа данных, массивом, указателем, объединением или структурой.
4. Для обращения к полю используется операция принадлежности (привязки, выбора) «.» (точка) при обращении через ID структуры, или «–>» (стрелка) при обращении через указатель.
5. Структуры одного типа можно присваивать друг другу с использованием стандартной функции memcpy.
6. Ввод-вывод структур выполняется поэлементно.
7. Структуры, память под которые выделяет компилятор, можно инициализировать значениями их полей.
8. Файл – это именованный объект, хранящий данные на каком-либо носителе, хотя может располагаться и на электронном диске в ОП.
9. Файл не имеет фиксированной длины, т.е. может увеличиваться или уменьшаться в процессе обработки.
10. Перед работой файл необходимо открыть (функция fopen), а после работы закрыть (функция fclose).