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:
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