Как работать с файлами из программы

Работа с файлами строит по принципу сэндвича:

Понятие «открыть файл» означает «начать с ним работу», сделать его активным и забло-

кировать обращение других программ к этому файлу. При закрытии файла он освобождается(теперь с ним могут работать другие программы) и все ваши изменения вносятся на диск.Для работы с файлом используется специальная переменная, которая называется указателем на файл. Это адрес блока данных в памяти, в котором хранится вся информация об открытом файле. Объявляется указатель на файл так:

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("Нет файла с данными");


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: