где позиция – количество байтов (символов), отстоящих от заданного места, параметрSEEK_SET – начало файла,
SEEK_CUR – текущая позиция файла,
SEEK_END – конец файла.
Пример 1: прочитать символ из бинарного файла, отстоящий от начала файла на 9 байтов:
f_bin=fopen("D:/User/my_file.dat", "rb");
fseek(f_bin, 9, SEEK_SET);
fscanf(f_bin, "%c", &d);
printf("%c", d);
На экран будет выведено:
*
Пример 2: прочитать символ из бинарного файла, отстоящий от конца файла на 6 байтов:
f_bin=fopen("D:/User/my_file.dat", "rb");
fseek(f_bin, -6, SEEK_END);
fscanf(f_bin, "%c", &d);
printf("%c", d);
На экран будет выведено:
+
б) определение номера текущей позиции, занимаемой указателем файла (нумерация позиций начинается с нуля)
fgetpos(указатель на файл, fpos_t *pos)
где pos – текущая позиция указателя файла – переменная типа fpos_t (определен в stdio.h).
Пример: определить номера позиций начального и конечного символов файла:
fpos_t *nomer;
f_bin=fopen("D:/User/my_file.dat", "rb");
fgetpos(f_bin, &nomer); // номер начального символа
printf("\n nomer=%d", nomer);
while (!feof(f_bin)) // читаем файл до конца
{
fscanf(f_bin, "%c", &d);
}
fgetpos(f_bin, &nomer); // номер конечного символа
printf("\n nomer=%d", nomer);
На экран будет выведено:
nomer=0
nomer=15