C ++ fseek () - C ++ Standardbibliotek

Funktionen fseek () i C ++ indstiller filpositionens indikator for den givne filstrøm.

Funktionen fseek () er defineret i headerfilen.

fseek () prototype

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

Hvis filen åbnes i binær tilstand, forskydes filmarkørens nye position nøjagtigt bytes fra oprindelsen.

Hvis filen åbnes i teksttilstand, er de understøttede værdier for forskydning:

  • Nul: Det fungerer med enhver oprindelsesværdi, dvs. SEEK_SET, SEEK_CUR og SEEK_END.
  • Værdi returneret af et opkald til ftell (stream): Det fungerer kun med oprindelse SEEK_SET.

Hvis strømmen er bredorienteret, anvendes begrænsningerne for både tekst og binære strømme, dvs. resultatet af ftell er tilladt med SEEK_SET og nul forskydning er tilladt fra SEEK_SET og SEEK_CUR, men ikke SEEK_END.

Fseek-funktionen fortryder også virkningerne af ungetc og rydder, hvis det er relevant, status for slutningen af ​​filen.

Hvis der opstår en læse- eller skrivefejl, indstilles ferror, og filpositionen påvirkes ikke.

fseek () Parametre

  • stream: Filstrømmen, der skal ændres.
  • forskydning: Antallet af tegn, der skal forskydes fra oprindelsen.
  • oprindelse: Position bruges som reference for at tilføje til forskydning. Det kan have følgende værdier:
fseek () oprindelsesværdier
Værdi Beskrivelse
SEEK_SET Begyndelsen af ​​filen
SEEK_CUR Aktuel position for filmarkøren
SEEK_END Slut på fil

fseek () Returværdi

  • Ved succes returnerer fseek () -funktionen nul, ellers nul.

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 kører programmet, vil output være:

 Navn: Erica Alder: 25 By: Berlin

Interessante artikler...