Čitanje iz datoteke vrši se uzastopno, to jest, nakon izvršenja sljedeće operacije čitanja, pokazivač će biti postavljen na sljedeći nepročitani znak. Položaj pokazivača možete promijeniti pomoću funkcije fseek (). Koristi se za pomicanje pokazivača datoteke na određenu poziciju. Funkcija fseek () je specificirana u standardnoj knjižnici c jezika - stdio.h, tako da početak programa u kojem će se koristiti funkcija treba biti deklaracija: #include.
Opis fseek funkcije u
, SEEK_CUR
i SEEK_END
:
Vrijednost parametra pos je SEEK_SET - pomak će se odrediti u odnosu na početak datoteke , Kada je SEEK_CUR jednak, pomak se uzima od trenutnog položaja pokazivača. Ako ima vrijednost SEEK_END, pomak će se oduzeti od kraja datoteke. Funkcija fseek vraća nulu u slučaju uspješnog pomicanja pokazivača i bilo kojegnultu vrijednost ako nije uspjela izvršiti željenu radnju, na primjer, u slučaju stranog izlaznog indeksa. Povratna vrijednost bit će jednaka EBADF-u pri slanju pogrešnog pokazivača datoteke, EINVAL u slučaju nevažeće vrijednosti argumenta ili ESPIPE s pogreškom u parametru odmaka, primjerice izvan granice datoteke.
Program
Opis
Primjer
Program
Opis
# uključiti
int main ()
[
FILE * fp;
fp = fopen ("test.txt", "r");
fseek (fp, 7 SEEK_CUR);
printf ("% ld", ftell (fp));
fclose (fp);
povratak 0;
}
Povežite knjižnicu standardnog jezika sa stdio.h Odredite varijablu datoteke Otvorite datoteku za čitanje Pomičemo pokazivač na 7 bajtova ispred trenutne pozicije (Budući da smo samo otvorili datoteku, pokazivač je na početku.) Ispisujemo trenutni položaj pokazivača s funkcijom ftell () Zatvori datoteku
Osim razmatranog, postoje i druge funkcije za rad s pokazivačem, na primjer:
Rewind () - koristi se za postavljanje kursora na početak datoteke.
Ftell () - Vraća položaj pokazivača u ovom trenutku.
Feof () - služi za identificiranje kraja datoteke. Kada kraj datoteke dosegne vrijednost funkcije bit će istina.
Završne napomene
Završne napomene
Kada se radi s ovom funkcijom potrebno je zapamtiti, radi samo s streaming input-outputom. Također, ne zaboravite zatvoriti datoteku s fclose ().