A fseek () függvény a C ++ nyelven állítja be az adott fájlfolyam fájlállásának jelzőjét.
A fseek () függvény a fejlécfájlban van meghatározva.
fseek () prototípus
int fseek (FILE * folyam, hosszú eltolás, int eredet);
Ha a fájlt bináris módban nyitják meg, a fájlmutató új helyzete pontosan ellensúlyozza a bájtokat az origótól.
Ha a fájlt szöveges módban nyitják meg, az eltolás támogatott értékei a következők:
- Nulla: Bármely eredetértékkel működik, például SEEK_SET, SEEK_CUR és SEEK_END.
- Az ftell (stream) hívás által visszaadott érték: Csak a SEEK_SET eredetével működik.
Ha az adatfolyam széles orientált, akkor mind a szöveges, mind a bináris adatfolyamok korlátozásai érvényesek, azaz az ftell eredménye megengedett a SEEK_SET használatával, és nulla eltolás megengedett a SEEK_SET és a SEEK_CUR értéktől, de a SEEK_END nem.
A fseek függvény visszavonja az ungetc hatásait, és adott esetben törli a fájl végének állapotát.
Ha olvasási vagy írási hiba lép fel, a hibát beállítja, és a fájl helyzetét nem befolyásolja.
fseek () Paraméterek
- adatfolyam: A módosítandó fájlfolyam.
- eltolás: Az eredetből kiszorítandó karakterek száma.
- eredet: Az offszethez való hozzáadásként hivatkozási hely. A következő értékek lehetnek:
Érték | Leírás |
---|---|
SEEK_SET | A fájl kezdete |
SEEK_CUR | A fájlmutató jelenlegi helyzete |
SEEK_END | A fájl vége |
fseek () Visszatérési érték
- Siker esetén a fseek () függvény nullát ad vissza, különben nem nullát.
Példa: Hogyan működik a fseek () függvény?
#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; )
A program futtatásakor a kimenet a következő lesz:
Név: Erica Kor: 25 Város: Berlin