Прототип функции fgetpos:
int fgetpos( FILE * filestream, fpos_t * position );
Заголовочный файл
| Название | Язык |
|---|---|
| stdio.h | С |
| cstdio | С++ |
Описание
Функция fgetpos возвращает текущую позицию в файле. Через параметры filestream и position функция получает информацию, необходимую для идентификации текущего положения внутреннего указателя потока.
Параметр position должен указывать на уже существующий объект типа fpos_t, который предназначен, в будущем, только для использования, в качестве параметра функции fsetpos.
Чтобы получить целочисленное значение типа int внутреннего индикатора позиции файла, используйте функцию ftell.
Параметры:
- filestream
Указатель на объект типаFILE, идентифицируемый поток. - position
Указатель на объект типаfpos_t.
Возвращаемое значение
Функция возвращает нулевое значение в случае успешного выполнения.
В противном случае — ненулевое значение.
Пример: исходный код программы
//пример использования функции fgetpos
#include <cstdio>
#include <iostream>
int main()
{
FILE * ptrFile = fopen ("file.txt","r");
fpos_t pos;
if (ptrFile == NULL) perror ("Ошибка открытия файла");
else
{
std::cout << "первый символ: " << (char)fgetc(ptrFile) << "\n";
fgetpos (ptrFile,&pos); // получить текущую позицию в файле
for (int counter = 0; counter < 4; counter++)
{
fsetpos (ptrFile,&pos); // изменить позицию
std::cout << "Второй символ: " << (char)fgetc (ptrFile) << "\n";
}
fclose (ptrFile); // закрыть файл
}
return 0;
}
Пример работы программы
Второй символ: p
Второй символ: p
Второй символ: p
Второй символ: p
Пример открытия файла file.txt, программа сначала считывает один символ, после изменяет положение указателя и считывает второй символ 4 раза.