C ++ fseek () - C ++ Standardbibliotek

Funktionen fseek () i C ++ ställer in filpositionsindikatorn för den angivna filströmmen.

Funktionen fseek () definieras i rubrikfilen.

fseek () prototyp

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

Om filen öppnas i binärt läge förskjuts filpekarens nya position exakt byte från ursprunget.

Om filen öppnas i textläge är de stödda värdena för offset:

  • Noll: Det fungerar med alla ursprungsvärden, dvs SEEK_SET, SEEK_CUR och SEEK_END.
  • Värde som returneras av ett samtal till ftell (stream): Det fungerar bara med ursprunget till SEEK_SET.

Om strömmen är bredorienterad tillämpas begränsningarna för både text och binära strömmar, dvs resultatet av ftell tillåts med SEEK_SET och nollförskjutning tillåts från SEEK_SET och SEEK_CUR, men inte SEEK_END.

Fseek-funktionen ångrar också effekterna av ungetc och rensar filens slutstatus, om tillämpligt.

Om ett läs- eller skrivfel inträffar ställs ferror in och filpositionen påverkas inte.

fseek () Parametrar

  • stream: Filströmmen som ska ändras.
  • offset: Antalet tecken som ska förskjutas från ursprunget.
  • ursprung: Position som referens för att lägga till förskjutning. Det kan ha följande värden:
fseek () ursprungsvärden
Värde Beskrivning
SEEK_SET Början på filen
SEEK_CUR Aktuell position för filpekaren
SEEK_END Filens slut

fseek () Returvärde

  • Vid framgång returnerar fseek () -funktionen noll, annars noll.

Exempel: Hur fungerar 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 kör programmet blir resultatet:

 Namn: Erica Ålder: 25 Stad: Berlin

Intressanta artiklar...