Прототип функции 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 раза.