![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
|
Для программиста открытый файл представляется как последовательность данных — считываемых данных или записываемых данных. При открытии файла с ним связывается поток. Выводимая информация записывается в поток; считываемая информация берется из потока. Когда поток открывается для ввода-вывода, он связывается со структурой типа 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; Прочитано: 311 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!
