Funkcija „fseek“ (C ++) nustato failo padėties rodiklį nurodytam failų srautui.
Funkcija „fseek“ () apibrėžta antraštės faile.
fseek () prototipas
int fseek (FILE * srautas, ilgas poslinkis, int kilmė);
Jei failas atidaromas dvejetainiu režimu, naujoji failo žymeklio padėtis tiksliai kompensuoja baitus nuo kilmės.
Jei failas atidaromas teksto režimu, palaikomos šios poslinkio vertės:
- Nulis: jis veikia su bet kokia kilmės verte, ty SEEK_SET, SEEK_CUR ir SEEK_END.
- Vertė, kurią grąžino skambutis „ftell“ (srautas): ji veikia tik su SEEK_SET kilme.
Jei srautas orientuotas plačiai, taikomi tiek teksto, tiek dvejetainių srautų apribojimai, ty ftell rezultatas leidžiamas naudojant SEEK_SET ir nulinis poslinkis leidžiamas nuo SEEK_SET ir SEEK_CUR, bet ne SEEK_END.
„Fseek“ funkcija taip pat panaikina „ungetc“ padarinius ir išvalo failo pabaigos būseną, jei taikoma.
Jei įvyksta skaitymo ar rašymo klaida, nustatoma klaida ir failo padėtis neturi įtakos.
fseek () parametrai
- srautas: failų srautas, kurį reikia keisti.
- poslinkis: simbolių, kuriuos reikia pakeisti nuo kilmės, skaičius.
- kilmė: padėtis naudojama kaip nuoroda, norint pridėti kompensaciją. Jis gali turėti šias vertes:
Vertė | apibūdinimas |
---|---|
SEEK_SET | Bylos pradžia |
SEEK_CUR | Dabartinė failo žymeklio padėtis |
SEEK_END | Failo pabaiga |
fseek () Grąžinimo vertė
- Sėkmės atveju funkcija „fseek“ () grąžina nulį, kitaip - nulis.
Pavyzdys: Kaip veikia „fseek“) funkcija?
#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; )
Kai paleisite programą, išvestis bus:
Vardas: Erica Amžius: 25 Miestas: Berlynas