C ++ fseek () - C ++ Standard Library

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:
fseek () eredetértékek
É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

érdekes cikkek...