C ++ fseek () - C ++ - vakiokirjasto

C ++: n fseek () -toiminto asettaa tiedoston sijainnin osoittimen annetulle tiedostovirralle.

Fseek () -funktio määritetään otsikkotiedostossa.

fseek () prototyyppi

 int fseek (FILE * virta, pitkä siirtymä, int alkuperä);

Jos tiedosto avataan binaaritilassa, tiedoston osoittimen uusi sijainti siirtyy tavuiltaan täsmälleen alkuperäisestä.

Jos tiedosto avataan tekstitilassa, siirtymän tuetut arvot ovat:

  • Nolla: Se toimii minkä tahansa alkuperäarvon kanssa, esim. SEEK_SET, SEEK_CUR ja SEEK_END.
  • Arvo, jonka palauttaa kutsu ftell (stream): Se toimii vain alkuperän SEEK_SET kanssa.

Jos virta on laaja-suuntautunut, sovelletaan sekä teksti- että binaarivirtausten rajoituksia, ts. Ftell-tulos on sallittu arvolla SEEK_SET ja nollasiirtymä on sallittu välillä SEEK_SET ja SEEK_CUR, mutta ei SEEK_END.

Fseek-toiminto kumoaa myös ungetc: n vaikutukset ja tyhjentää tiedoston lopun tilan tarvittaessa.

Jos luku- tai kirjoitusvirhe tapahtuu, virhe määritetään ja tiedoston sijainti ei muutu.

fseek () -parametrit

  • stream: muokattava tiedostovirta.
  • offset: Alkuperästä syrjäytettävien merkkien määrä.
  • alkuperä: Asemaa käytetään viitteenä offsetin lisäämiseksi. Sillä voi olla seuraavat arvot:
fseek () -alkuarvot
Arvo Kuvaus
SEEK_SET Tiedoston alku
SEEK_CUR Tiedoston osoittimen nykyinen sijainti
SEEK_END Tiedoston loppu

fseek () Palautusarvo

  • Menestyksessä fseek () -funktio palauttaa nollan, muuten nolla.

Esimerkki: Kuinka fseek () -toiminto toimii?

 #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; )

Kun suoritat ohjelmaa, tulos on:

 Nimi: Erica Ikä: 25 Kaupunki: Berliini

Mielenkiintoisia artikkeleita...