Функция
#include <stdio.h>
long int ftell(FILE *stream);
возвращает положение указателя текущей позиции файла, связанного с потоком stream. Значение выдается в виде смещения в байтах относительно начала файла.
Значение, возвращаемое ftell, можно в дальнейшем использовать при вызове функции fseek.
Функция ftell возвращает положение указателя текущей позиции при успешном завершении. При ошибке возвращает-1L, и присваивает переменной errno положительное значение.
Пример:
#include<stdio.h>
int main(void)
{
FILE *stream;
stream = fopen("DUMMY.FIL","w+");
fprintf(stream,"Это тест");
printf("Указатель файла: %ld\n",ftell(stream));
return 0;
}
9.2. Файловый ввод-вывод в языке С++
Функция | Назначение |
open | Открывает файл для чтения/записи, связывая с ним объект класса filebuf |
close | Закрывает файл |
setbuf | Передает указанный символьный буфер в распоряжение объекта класса filebuf |
setmode | Задает режим доступа к файлу: двоичный (константа filebuf::binary) или текстовый (константа filebuf::text) |
attach | Связывает указанный открытый файл с объектом класса filebuf |
rdbuf | Возвращает указатель на объект класса filebuf |
fd | Возвращает дескриптор класса |
is_open | Проверяет, открыт ли файл, связанный с потоком |
Для работы с файлами необходимо подключить библиотеку FSTREAM.H (которая в свою очередь подключает файл iostream.h).
|
|
Для чтения данных из файла используется класс ifstream, являющийся потомком класса istream. Для записи данных в файл используется класс ofstream, являющийся потомком класса ostream. Для чтения данных и записи из файла используется класс fstream. Конструктор каждого из этих классов автоматически создает объект класса filebuf, управляющий низкоуровневой работой с файлом, включая поддержку буфера чтения. Функции классов ifstream, ofstream и iofstream приведены в таблице.