Функција фсеек () у Ц ++ поставља индикатор положаја датотеке за дати ток датотека.
Функција фсеек () је дефинисана у датотеци заглавља.
прототип фсеек ()
инт фсеек (ФИЛЕ * ток, дугачак помак, инт порекло);
Ако се датотека отвори у бинарном режиму, нова позиција показивача на датотеку је тачно одмакнута од бајтова.
Ако је датотека отворена у текстуалном режиму, подржане вредности за одступање су:
- Нула: Ради са било којом вредношћу порекла, тј. СЕЕК_СЕТ, СЕЕК_ЦУР и СЕЕК_ЕНД.
- Вредност враћена позивом на фтелл (стреам): Ради само са пореклом из СЕЕК_СЕТ.
Ако је ток широко оријентисан, примењују се ограничења и текстуалних и бинарних токова, тј. Резултат фтелла је дозвољен са СЕЕК_СЕТ и нулти помак је дозвољен из СЕЕК_СЕТ и СЕЕК_ЦУР, али не и СЕЕК_ЕНД.
Функција фсеек такође поништава ефекте унгетц и брише статус краја датотеке, ако је применљиво.
Ако се догоди грешка читања или писања, поставља се ферор и то не утиче на положај датотеке.
фсеек () параметри
- ток: ток датотеке који треба изменити.
- помак: број знакова које треба премјестити из исходишта.
- порекло: положај који се користи као референца за додавање офсета. Може имати следеће вредности:
Вредност | Опис |
---|---|
СЕЕК_СЕТ | Почетак датотеке |
СЕЕК_ЦУР | Тренутна позиција показивача датотеке |
СЕЕК_ЕНД | Крај датотеке |
фсеек () Повратна вредност
- По успеху функција фсеек () враћа нулу, у супротном није нула.
Пример: Како функционише функција фсеек ()?
#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 Град: Берлин