Funksjonen fseek () i C ++ angir filposisjonsindikatoren for den gitte filstrømmen.
Funksjonen fseek () er definert i topptekstfilen.
fseek () prototype
int fseek (FILE * stream, long offset, int origin);
Hvis filen åpnes i binærmodus, blir den nye posisjonen til filmarkøren nøyaktig forskjøvet byte fra opprinnelsen.
Hvis filen åpnes i tekstmodus, er de støttede verdiene for forskyvning:
- Null: Den fungerer med en hvilken som helst opprinnelsesverdi, dvs. SEEK_SET, SEEK_CUR og SEEK_END.
- Verdien returneres av en samtale til ftell (stream): Den fungerer bare med opprinnelsen til SEEK_SET.
Hvis strømmen er bredorientert, brukes begrensningene for både tekst og binære strømmer, dvs. resultatet av ftell er tillatt med SEEK_SET og nullforskyvning er tillatt fra SEEK_SET og SEEK_CUR, men ikke SEEK_END.
Fseek-funksjonen angir også effekten av ungetc og tømmer sluttsiden av fil, hvis aktuelt.
Hvis det oppstår en lese- eller skrivefeil, settes ferror og filposisjonen påvirkes ikke.
fseek () Parametere
- stream: Filstrømmen som skal endres.
- forskyvning: Antall tegn som skal forskyves fra opprinnelsen.
- opprinnelse: Posisjon brukt som referanse for å legge til forskyvning. Den kan ha følgende verdier:
Verdi | Beskrivelse |
---|---|
SEEK_SET | Begynnelsen på filen |
SEEK_CUR | Nåværende posisjon for filpekeren |
SEEK_END | Slutt på filen |
fseek () Returverdi
- Når det lykkes, returnerer funksjonen fseek () null, ellers ikke null.
Eksempel: Hvordan fungerer 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; )
Når du kjører programmet, vil utdataene være:
Navn: Erica Alder: 25 By: Berlin