C ++ fseek () - štandardná knižnica C ++

Funkcia fseek () v C ++ nastavuje indikátor polohy súboru pre daný tok súborov.

Funkcia fseek () je definovaná v hlavičkovom súbore.

prototyp fseek ()

 int fseek (FILE * stream, dlhy offset, int origin);

Ak je súbor otvorený v binárnom režime, nová pozícia ukazovateľa súboru je presne posunutá o bajty od začiatku.

Ak je súbor otvorený v textovom režime, podporované hodnoty pre offset sú:

  • Nula: Funguje s ľubovoľnou hodnotou pôvodu, tj SEEK_SET, SEEK_CUR a SEEK_END.
  • Hodnota vrátená volaním na ftell (stream): Funguje iba s pôvodom SEEK_SET.

Ak je prúd široko orientovaný, uplatňujú sa obmedzenia textového aj binárneho toku, tj. Výsledok ftell je povolený pre SEEK_SET a nulový posun je povolený pre SEEK_SET a SEEK_CUR, ale nie SEEK_END.

Funkcia fseek tiež zruší účinky ungetc a prípadne vymaže stav konca súboru.

Ak dôjde k chybe čítania alebo zápisu, nastaví sa ferror a pozícia súboru zostane nedotknutá.

Parametre fseek ()

  • stream: stream súborov, ktorý chcete upraviť.
  • offset: Počet znakov, ktoré sa majú premiestniť od začiatku.
  • origin: Pozícia použitá ako referencia na pridanie k odsadeniu. Môže mať nasledujúce hodnoty:
hodnoty pôvodu fseek ()
Hodnota Popis
SEEK_SET Začiatok spisu
SEEK_CUR Aktuálna poloha ukazovateľa súboru
SEEK_END Koniec súboru

fseek () Vráti hodnotu

  • Pri úspechu funkcia fseek () vráti nulu, inak nenulovú.

Príklad: Ako funguje funkcia 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; )

Po spustení programu bude výstup:

 Meno: Erica Vek: 25 Mesto: Berlín

Zaujímavé články...