C ++ fseek () - Standardna knjižnica C ++

Funkcija fseek () v jeziku C ++ nastavi indikator položaja datoteke za dani tok datotek.

Funkcija fseek () je definirana v zaglavni datoteki.

prototip fseek ()

 int fseek (FILE * tok, dolg odmik, int izvor);

Če je datoteka odprta v binarnem načinu, je novi položaj kazalca datoteke natančno odmaknjen v bajtih od izvora.

Če je datoteka odprta v besedilnem načinu, so podprte vrednosti odmika:

  • Zero: Deluje s katero koli vrednostjo izvora, tj. SEEK_SET, SEEK_CUR in SEEK_END.
  • Vrednost, ki jo vrne klic ftell (stream): Deluje samo z izvorom SEEK_SET.

Če je tok široko usmerjen, se uporabljajo omejitve besedilnih in binarnih tokov, tj. Rezultat ftella je dovoljen s SEEK_SET in ničelni odmik je dovoljen iz SEEK_SET in SEEK_CUR, ne pa tudi SEEK_END.

Funkcija fseek prav tako razveljavi učinke ungetc in po potrebi izbriše stanje konca datoteke.

Če pride do napake pri branju ali pisanju, se nastavi napaka in položaj datoteke ne vpliva.

fseek () Parametri

  • tok: tok datoteke za spreminjanje.
  • zamik: število znakov, ki jih je treba premakniti iz izvora.
  • izvor: položaj, uporabljen kot referenca za dodajanje odmika. Lahko ima naslednje vrednosti:
izvorne vrednosti fseek ()
Vrednost Opis
SEEK_SET Začetek datoteke
SEEK_CUR Trenutni položaj kazalca datoteke
SEEK_END Konec datoteke

fseek () Vrnjena vrednost

  • Po uspehu funkcija fseek () vrne nič, drugače ni nič.

Primer: Kako deluje funkcija 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; )

Ko zaženete program, bo rezultat:

 Ime: Erica Starost: 25 Mesto: Berlin

Zanimive Članki...