Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прилож В2 Описание языка С ч 2.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
382.46 Кб
Скачать

9. Файлы в языке c. Функции работы с файлами

Файлом называется набор данных, размещенных на машинном носителе. Такими носителями могут быть: жесткий магнитный диск, магнитный диск, компакт-диск, дискета. В зависимости от хранимой в файле информации различают: программные файлы, файлы данных.

Программные файлы содержат коды машинных команд и другую служебную информацию, необходимую для выполнения их на компьютере. Это файлы с расширением .СОМ, .ЕХЕ, .SYS и др.

Файлы данных могут содержать различную информацию в символьном виде или в двоичном коде. Таких файлов много, это: текстовые, графические различных форматов, базы данных и т.д.

Для работы с файлами данных в программе необходимо выполнить следующие операции: описать указатель на файл; открыть файл; читать из файла или записывать данные в файл; закрыть файл.

1. Описание указателя на файл.

Имеет вид:

FILE *pf1, *pf2;

Это описание может быть как до начала функции main() или в другой функции, но в разделе описания.

FILE – нестандартный тип данных, определенных с помощью оператора typedef, представляет собой структуру, описывающую буфер для работы с файлами.

Описание FILE находится в заголовочном файле stdio.h.

*pf1, *pf2 – указатели на файлы.

2. Открытие файла.

Имеет следущую форму записи:

pf=fopen(“имя файла”, ”режим”);

где рf – ранее описанный указатель на файл;

fopen – библиотечная функция открытия файла;

имя файла – указывается полное имя файла: идентификатор.расширение, например ishod.dat. Если файл находится в другом каталоге, то необходимо указать полный путь.

режим – задает вид операции, которая будет выполняться с файлом. Может быть:

r – только чтение

w – только запись

a – добавление записей

К указанным режимам можно добавить символ “+”, который расширяет возможности этих режимов.

3. Чтение или запись файла.

A) чтение данных из файла

fscanf(pf, “управляющая строка”, список указателей);

где pf –указатель на файл, ранее открытый для чтения.

управляющая строка – содержит набор форматных спецификаций, заключенных в кавычки “ ”.

cписок указателей – адреса величин, куда будут заноситься считываемые из файла данные.

Пример: fscanf(pf1,”%d%f%s”, &m, &a, name);

Б) запись данных в файл

fprintf(pf, “управляющая строка”, список вывода);

где список вывода – перечень величин, значения которых будут записаны в файл.

Пример: fprintf(ptf2, ”%3f %d, %c %s\n”, x, k, t, mst);

4. Закрытие файла.

fclose (pf);

где pf – указатель на ранее открытый файл.

В результате выполнения fclose() файл отключается от программы и становится недоступным. В дальнейшем этот указатель может использоваться другим файлом.

Дополнительные функции для работы с файлами

1. Функция определения конца файла

feof( pf ) → признак конца файла

Эта функция возвращает значение = 0, если не достигнут конец файла и 0, если была попытка читать за последним байтом файла.

2. Функция обнаружения ошибки при работе с файлом

ferror( pf ) → код ошибки

Если код ошибки = = 0 - нет ошибки, иначе, при код ошибки  0 – возникла ошибка.

Пример программы, работающей с файлами и структурами приведен в приложении Г (пример №7).