Лекция: Работа с файлами данных

Для программиста открытый файл представляется как последовательность данных — считываемых данных или записываемых данных. При открытии файла с ним связывается поток. Выводимая информация записывается в поток; считываемая информация берется из потока. Когда поток открывается для ввода-вывода, он связывается со структурой типа FILE, которая определена в stdio.h. Структура содержит разнообразную информацию о файле.


При открытии файла с помощью функции /open возвращается указатель на структуру типа FILE, который можно использовать для последующих операций с файлом.

 

#include <stdio.h>    
    /^прототип функции*/
    /^находится в файле*/
    /*stdio.h*/    
FILE *fopen (name, type);    
char *name;      
char *type;      

Функция /open открывает файл, имя которого задается аргументом пате, и связывает с ним поток для выполнения операций ввода-вывода данных. Параметр type — это указатель на строку символов, определяющих способ доступа к файлу. Возвращаемое значение функции — указатель на структуру типа FILE.

Значения аргумента type следующие:

• «г» — открыть файл для чтения (файл должен существовать);

• «w» — открыть пустой файл для записи; если файл существует, то его содержимое теряется;

• «а» — открыть файл для записи в конец (для добавления); файл создается, если он не существует;

• «г+» — открыть файл для чтения и записи (файл должен существовать);

• «w+» — открыть пустой файл для чтения и записи; если файл существует, то его содержимое теряется;

• «а+» — открыть файл для чтения и дополнения, если файл не существует, то он создаётся.

Возвращаемое значение функции /open:

1) указатель на открытый поток;

2) значение NULL, если обнаружена ошибка.

Пример.Открытие существующего файла для чтения

main()

{

FILE *f; /* f — указатель на открытый поток */

char *а, *Ь; /* а и b — указатели на строки */

cL= cL • CLcLTL }

b=«r»;


f=fopen(a, b);

/* или более простой вариант: */ /* f= fopen(«a.dat», «r»); */

Пример

 

f= fopen(«a.dat» II у, II );    
/* Так лучше не прогр аммировать,* /  
/* поскольку фун кция возвращает NULL, */
/* если файл не может быть открыт .*/  
/* Лучше сделать так: */    
if { ; (if = fopen( «a.dat»,«г»)) != NULL )
} else        
  printf("\пОшибка открытия файла!") г

Функция /close закрывает поток или потоки, связанные с открытыми при помощи функции/ореи файлами. Закрываемый поток определяется аргументом/

 

#inc lude <stdio .h>
int fclose(f);  
FILE *f;    

Возвращаемое значение:

1) значение 0, если поток успешно закрыт;

2) EOF, если произошла ошибка.

Пример

fclose(f);

Функция feof определяет достигнут ли конец файла. Если конец достигнут, то операция чтения будет возвращать значение EOF до тех пор, пока поток не будет закрыт.

#include <stdio.h> int feof(f); FILE *f;


Возвращаемое значение:

1)0 — если конец файла не найден;

2) ненулевое значение, если достигнут конец файла.

еще рефераты
Еще работы по информатике