C ++ fseek () - C ++ стандартна библиотека

Функцията fseek () в C ++ задава индикатора за позицията на файла за дадения файлов поток.

Функцията fseek () е дефинирана в заглавния файл.

прототип на fseek ()

 int fseek (FILE * поток, дълъг офсет, int произход);

Ако файлът е отворен в двоичен режим, новата позиция на файловия указател е точно изместена байта от началото.

Ако файлът се отвори в текстов режим, поддържаните стойности за отместване са:

  • Нула: Работи с всякаква стойност на произхода, т.е. SEEK_SET, SEEK_CUR и SEEK_END.
  • Стойност, върната от повикване към ftell (поток): Тя работи само с произход на SEEK_SET.

Ако потокът е широко ориентиран, се прилагат ограниченията както на текстови, така и на двоични потоци, т.е. резултатът от ftell е разрешен с SEEK_SET и нулево отместване е позволено от SEEK_SET и SEEK_CUR, но не и SEEK_END.

Функцията fseek също отменя ефектите на ungetc и изчиства състоянието на края на файла, ако е приложимо.

Ако възникне грешка при четене или запис, се задава ferror и позицията на файла не се влияе.

fseek () Параметри

  • поток: Файловият поток за модифициране.
  • offset: Броят на знаците, които трябва да се изместят от началото.
  • произход: Позиция, използвана като препратка за добавяне към отместване. Може да има следните стойности:
fseek () стойности за произход
Стойност Описание
SEEK_SET Начало на файла
SEEK_CUR Текуща позиция на файловия указател
SEEK_END Край на файла

fseek () Върната стойност

  • При успех функцията fseek () връща нула, в противен случай ненулева.

Пример: Как работи функцията fseek ()?

 #include int main() ( FILE* fp = fopen("example.txt","w+"); char ch; fputs("Erica 25 Berlin", fp); rewind(fp); printf("Name: "); while((ch=fgetc(fp))!=' ') putchar(ch); putchar(''); printf("Age: "); fseek(fp,10,SEEK_SET); while((ch=fgetc(fp))!=' ') putchar(ch); putchar(''); printf("City: "); fseek(fp,15,SEEK_SET); while((ch=fgetc(fp))!=EOF) putchar(ch); putchar(''); fclose(fp); return 0; )

Когато стартирате програмата, изходът ще бъде:

 Име: Ерика Възраст: 25 Град: Берлин

Интересни статии...