C ++ fseek () - standardní knihovna C ++

Funkce fseek () v C ++ nastavuje indikátor polohy souboru pro daný stream souboru.

Funkce fseek () je definována v hlavičkovém souboru.

prototyp fseek ()

 int fseek (FILE * stream, dlouhý offset, int origin);

Pokud je soubor otevřen v binárním režimu, je nová pozice ukazatele souboru přesně odsazená o bajty od počátku.

Pokud je soubor otevřen v textovém režimu, podporované hodnoty pro offset jsou:

  • Nula: Funguje s jakoukoli hodnotou původu, tj. SEEK_SET, SEEK_CUR a SEEK_END.
  • Hodnota vrácená voláním ftell (stream): Funguje pouze s počátkem SEEK_SET.

Pokud je stream široko orientovaný, použijí se omezení jak textových, tak binárních streamů, tj. Výsledek ftell je povolen s SEEK_SET a nulový offset je povolen z SEEK_SET a SEEK_CUR, ale ne SEEK_END.

Funkce fseek také zruší účinky ungetc a případně vymaže stav konce souboru.

Pokud dojde k chybě čtení nebo zápisu, nastaví se ferror a poloha souboru není ovlivněna.

Parametry fseek ()

  • stream: Stream souborů, který chcete upravit.
  • offset: Počet znaků, které mají být přemístěny z počátku.
  • počátek: Poloha použitá jako reference pro přidání k odsazení. Může mít následující hodnoty:
hodnoty původu fseek ()
Hodnota Popis
SEEK_SET Začátek souboru
SEEK_CUR Aktuální pozice ukazatele souboru
SEEK_END Konec souboru

fseek () Vrátí hodnotu

  • Při úspěchu vrátí funkce fseek () nulu, jinak nenulovou.

Příklad: Jak funguje funkce 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; )

Když spustíte program, výstup bude:

 Jméno: Erica Věk: 25 Město: Berlín

Zajímavé články...