Работа с файлами строит по принципу сэндвича:
Понятие «открыть файл» означает «начать с ним работу», сделать его активным и забло-
кировать обращение других программ к этому файлу. При закрытии файла он освобождается(теперь с ним могут работать другие программы) и все ваши изменения вносятся на диск.Для работы с файлом используется специальная переменная, которая называется указателем на файл. Это адрес блока данных в памяти, в котором хранится вся информация об открытом файле. Объявляется указатель на файл так:
FILE *fp;
Чтобы открыть файл, надо вызвать функцию fopen, которая попытается открыть файл и записать его адрес в переменную fp. После этого все обращения к файлу выполняются не по имени файла, а через указатель fp.
fp = fopen ("qq.dat", "r");
Здесь файл qq.dat из текущего каталога открывается для чтения (режим "r" во втором параметре функции fopen). Если надо, можно указать полный (или относительный) путь к файлу,например так:
fp = fopen ("c:\\data\\qq.dat", "r");
Знак «наклонные черта» (слэш) в символьных строках всегда удваивается, потому что одиночный слэш – это специальный символ, например в сочетании \n.
Кроме режима "r" (чтение из файла) есть еще несколько режимов:
"r" Запись в новый файл. Если на диске уже есть файл с таким именем, он будет
предварительно удален.
"a" Добавление в конец файла. Если на диске уже есть файл с таким именем, новые
данные дописываются в конец файла. Если такого файла нет, то он будет создан.
"r+" Открыть существующий файл для изменения с возможностью записи и чтения
"w+" Создание нового файла для записи и чтения (если файл с таким именем уже есть,
он заменяется новым).
Иногда программа не может открыть файл. Если файл открывается на чтение, это возможно в
следующих случаях:
• неверно задано имя файла или файла нет на диске;
• файл используется другой программой и заблокирован.
Если файл открывается на запись, операция может закончиться неудачно, если
• на диске нет места;
• файл защищен от записи;
• неверно задано имя файла (например, оно содержит две точки, знак вопроса и т.п.).
Если файл не удалось открыть, функция fopen возвращает специальное нулевое значение (нулевой указатель), который обозначается NULL. Поэтому надо всегда проверять правильностьоткрытия файла, особенно в режиме чтения. Если файл не был открыт, надо вывести сообщениеоб ошибке и выйти из программы.
if (fp == NULL)
{
printf("Нет файла с данными");