Funktsioon fseek () funktsioonis C ++ määrab antud failivoo faili positsiooni indikaatori.
Funktsioon fseek () on määratletud päisefailis.
fseek () prototüüp
int fseek (FILE * voog, pikk nihe, int päritolu);
Kui fail avatakse binaarrežiimis, on faili kursori uus asukoht täpselt baitidest algupärast nihutatud.
Kui fail avatakse tekstirežiimis, on nihke toetatud väärtused järgmised:
- Null: see töötab mis tahes päritoluväärtusega, st SEEK_SET, SEEK_CUR ja SEEK_END.
- Väärtus, mille tagastas kõne ftellile (voog): see töötab ainult algusega SEEK_SET.
Kui voog on laia orientatsiooniga, rakendatakse nii teksti- kui ka binaarvoo piiranguid, st ftellide tulemus on lubatud SEEK_SET-ga ja nullhälve on lubatud SEEK_SET ja SEEK_CUR, kuid mitte SEEK_END.
Funktsioon fseek tühistab ka ungetc-i mõju ja kustutab faili lõpu oleku, kui see on asjakohane.
Lugemis- või kirjutamisvea ilmnemisel määratakse tõrge ja faili asukoht ei muutu.
fseek () Parameetrid
- voog: muudetav failivoog.
- nihe: päritolust välja tõrjutavate märkide arv.
- päritolu: positsiooni kasutatakse viitena nihke lisamiseks. Sellel võivad olla järgmised väärtused:
Väärtus | Kirjeldus |
---|---|
SEEK_SET | Faili algus |
SEEK_CUR | Faili kursori praegune asukoht |
SEEK_END | Faili lõpp |
fseek () Tagastusväärtus
- Edu korral tagastab funktsioon fseek () nulli, muul juhul null.
Näide: Kuidas funktsioon fseek () töötab?
#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; )
Programmi käivitamisel on väljund järgmine:
Nimi: Erica Vanus: 25 Linn: Berliin