Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБ_ПРОГР.doc
Скачиваний:
8
Добавлен:
12.11.2019
Размер:
1.67 Mб
Скачать
    1. Указатель на файл

Указатель на файл – это указатель на информацию, определяющую различные параметры файла, включая его имя, состояние и текущую позицию. В принципе, указатель на файл идентифицирует конкретный дисковый файл и используется потоком для выполнения операций ввода-вывода. Указатель на файл – это переменная-указатель типа FILE (тип, определенный в файле stdio.h). Чтобы прочитать или записать файлы, программе надо использовать указатели на файлы. Для создания файловой переменной-указателя используется оператор типа:

FILE *fp;

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

Функция fopen() открывает для использования поток, связывает файл с данным потоком и затем возвращает указатель типа FILE на данный поток. Функция fopen() имеет прототип:

FILE *fopen (const char *filename, const char *mode);

где filename указывает на строку, содержащую имя файла, а mode указывает на строку, содержащую желаемый режим открытия файла (таблица 1).

Таблица 1 – Режимы открытия файла

Режим

З н а ч е н и е

r

Открывает файл для чтения (по умолчанию текстовый )

w

Открывает файл для записи (по умолчанию текстовый )

a

Присоединяет к файлу (по умолчанию текстовый )

rb

Открывает двоичный файл для чтения

wb

Открывает двоичный файл для записи

ab

Присоединяет (открывает для добавления)

r+”

Открывает файл для чтения/записи (по умолчанию. текстовый)

w+”

Создает файл для чтения/записи (по умолчанию текстовый)

a+”

Присоединяет или создает файл для чтения/записи (по умолчанию текстовый)

r+b

Открывает двоичный файл для чтения/записи

w+b

Создает двоичный файл для чтения/записи

a+b

Присоединяет или создает двоичный файл для чтения/записи

rt

Открывает текстовый файл для чтения

wt

Создает текстовый файл для записи

at

Присоединяет к текстовому файлу

r+t

Открывает текстовый файл для чтения

w+t

Создает текстовый файл для чтения/записи

a+t

Открывает или создает текстовый файл для чтения/записи

Примечание. При использовании r или a поток должен существовать.

Функция fopen() возвращает указатель базового типа FILE. Данный указатель идентифицирует файл и используется большинством функций файловой системы. Его никогда не следует изменять самостоятельно. Функция fopen() возвращает нулевой указатель (NULL), если файл не может быть открыт.

Если необходимо открыть файл с именем “a:\file1.dat” на запись, следует записать:

FILE *fp;

. . .

fp = fopen(“a:\file1.dat”, “w”);

или лучше

FILE *fp;

. . .

if ((fp = fopen(“a:\file1.dat”, “w”) = = NULL) {

puts(“Не могу открыть файл”)ж

exit(1); }

else puts(“Файл открыт для записи”);

Данный способ позволяет обнаружить ошибки при открытии файла, например, наличие защиты от записи на дискете или отсутствие свободного места.

Если fopen() используется для открытия файла на запись, то любой ранее существующий файл с указанным именем будет удален. Если его не существует, то он будет создан.

Для дозаписи информации в файл следует использовать режим “a”. Если файл не существует, то он будет создан.

Открытие файла на чтение требует наличия файла. Если файл не существует, то будет возвращена ошибка.

Если файл открыт для операции чтения/записи, то он не удаляется при наличии и, если его нет, то создается.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]