Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Работа с файлами данных



Для программиста открытый файл представляется как последовательность данных — считываемых данных или записываемых данных. При открытии файла с ним связывается поток. Выводимая информация записывается в поток; считываемая информация берется из потока. Когда поток открывается для ввода-вывода, он связывается со структурой типа 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) ненулевое значение, если достигнут конец файла.





Дата публикования: 2014-11-04; Прочитано: 290 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...