C ++ fseek () - C ++ standardbibliotek

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:
fseek () opprinnelsesverdier
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

Interessante artikler...