Файл – это организованный набор данных , расположенных на внешнем носителе.
В файлах размещаются данные, предназначенные для длительного хранения. Каждому файлу присваивается используемое при обращении к нему уникальное имя.
В языке С отсутствуют инструкции для работы с файлами. Все необходимые действия выполняются через функции, включенные в стандартную библиотеку. Они позволяют работать с различными устройствами, такими, как диски, принтер, коммуникационные каналы и т.п. Эти устройства сильно отличаются друг от друга. Однако файловая система позволяет преобразовывать их в единое абстрактное логическое устройство, называемое потоком. Существует два типа потоков: текстовые и двоичные.
Прежде чем читать или записывать информацию в файл, он должен быть открыт. Это можно сделать с помощью библиотечной функции fopen. Она берет внешнее представление файла (например C:\MY_FILE.TXT) и связывает его с внутренним логическим именем, которое используется далее в программах. Логическое имя – это указатель на требуемый файл. Его необходимо объявлять, и делается это, например, так:
FILE *lst;
Здесь FILE - имя типа, описанное в стандартном определении stdlo.h, 1st - указатель на файл. Обращение к функции foреn в программе производится так:
lst=fopen(спецификация файла, вид использования файла);
Спецификация файла может быть, например : C:\MY_FILE.TXT - для файла MY_FILE.TXT на диске C:; A:\MY_DIR\EX2_3.CPP - для файла ЕХ2_З.СРР в поддиректории A:\MY_DIR и т.п. Вид использования файла может быть:
r - открыть существующий файл для чтения;
w - создать новый файл для записи (если файл с указанным именем существует, то он будет переписан)
а - дополнить файл (открыть существующий файл для записи информации, начиная с конца файла, либо создать файл, если он не существует);
pb - открыть двоичный файл для чтения;
wb - создать двоичный файл для записи;
ab - дополнить двоичный файл;
rt - открыть текстовой файл для чтения;
wt - создать текстовой файл для записи;
at - дополнить текстовой файл;
г+ - открыть существующий файл для записи и чтения;
w+ - создать новый файл для записи и чтения;
а+ - дополнить или создать файл с возможностью записи и чтения;
r+b - открыть двоичный файл для записи и чтения;
w+b - создать двоичный файл для записи и чтения;
а+b - дополнить двоичный файл с предоставлением возможности записи и чтения.
Если режим t или b не задан (например, r, w или а), то он определяется значением глобальной переменной _fmode. Если _fmode = 0_BINARY, то файлы открываются в двоичном режиме, а если _fmode =О_TEXT - в текстовом режиме. Константы 0_BINARY и O_TEXT определены в файле fсntl.h.
Строки вида r+b можно записывать и в другой форме: rb+. Если в результате обращения к функции foреn возникает ошибка, то она возвращает указатель на константу NULL. После окончания работы c файлом, он должен быть закрыт. Это делается с помощью библиотечной функции fclose. Она имеет следующий прототип:
int fclose(FILE *lst);
При успешном завершении функция fclose возвращает значение нуль.
Любое другое значение говорит об ошибке.
4.13.1.Вывод информации в файл
#include <stdio.h>