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

Функции для работы с файлами



При работе с файлом используется поток данных. Поток данных служит в качестве буфера при записи/чтении файла. Непосредственные изменения в файл произойдут только на этапе закрытия, когда данные из потока записываются в файл.

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

открывает файл и связывает его с потоком данных, на который указывает указатель.

filename – указатель на строку символов, в которой хранится имя файла и путь к нему

mode – указатель на строку символов, в которой указывается режим открытия файла. Допустимые режимы:

r ” - открытие файла для чтения;

w ” - открытие файла для записи в начало файла;

a ” - открытие файла для чтения и записи. Запись производится только в конец файла.

Если указать только один из представленных выше режимов, то по умолчанию открывается в текстовом режиме. Можно явно указать, что файл открывается в текстовом режиме, тогда необходимо дописать символ «t», а при работе с бинарными – «b». Для открытия файла в режиме чтения и записи необходимо добавить символ «+». При возникновении ошибки во время открытия файла, функция fopen возвращает значение NULL.

int fclose (FILE * указатель)

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

В случае успешного закрытия файла функция возвращает 0, в случае же ошибки - значение EOF.

int fcloseall (void)

закрывает все открытые файлы. Возвращает количество закрытых файлов или EOF при возникновении ошибки.

int putc (int символ, FILE * указатель)

записывает 1 символ в текущую позицию указанного открытого файла.

int getc (FILE * указатель)

считывает 1 символ из текущей позиции указанного открытого файла.

int feof (FILE * указатель)

возвращает значение false, если конец файла не достигнут, и true, если достигнут конец файла.

int fputs (const char * строка, FILE * указатель)

записывает строку символов в текущую позицию в файле.

char * fgets (char * строка, int длина, FILE * указатель)

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

int * fprintf (FILE * указатель, const char * управляющая_строка)

записывает форматированные данные в файл.

управляющая_строка определяет строку форматирования аргументов, заданных своими адресами. Данная строка помимо текста содержит символы «%», после которых следует символ типа данных:

I или i - десятичное, восьмеричное или шестнадцатеричное целое число;

D или d - десятичное целое число;

U или u - десятичное целое число без знака;

E или e - действительное число с плавающей точкой;

s - строка символов;

c - один символ.

Если в строке присутствуют управляющие символы, то за ней идут в установленном порядке данные.

int * fscanf (FILE * указатель, const char * управляющая_строка)

считает форматированные данные из файла. Строка форматирования строится аналогично функции fprintf.

void rewind (FILE * указатель)

устанавливает указатель текущей позиции выделенного файла в начало файла.

int ferror (FILE * указатель)

определяет, произошла ли ошибка во время работы с файлом.

size_t fwrite (const void * ptr, size_t size, size_t count, FILE * указатель)

записывает в файл заданное число данных определенного размера. Функция возвращает число записанных элементов массива.

ptr - указатель на массив данных. Тип данных может быть любым.

size - размер в байтах каждого элемента массива данных, в большинстве случае это размер типа данных.

count - число записываемых элементов массива.

size_t является целым положительным числом.

size_t fread (void * ptr, size_t size, size_t count, FILE * указатель)

считывает из файла заданное число данных определенного размера. Функция возвращает число считанных элементов массива.

int fileno (FILE * указатель)

возвращает значение дескриптора указанного файла (дескриптор – логический номер файла для заданного потока).

long filelength (int дескриптор)

возвращает длину файла с соответствующим дескриптором в байтах.

int fseek (FILE * указатель, long int число_байт, int точка_отсчета);

устанавливает указатель в заданную позицию. точка_отсчета показывает откуда произвести переход указателя: SEEK_SET – с начала файла, SEEK_CUR – с текущей позиции, SEEK_END – с конца файла.





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



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