Fungsi fseek () dalam C ++ menetapkan penunjuk kedudukan fail untuk aliran fail yang diberikan.
Fungsi fseek () ditentukan dalam fail tajuk.
prototaip fseek ()
int fseek (aliran FILE *, ofset panjang, asal int);
Sekiranya fail dibuka dalam mod binari, kedudukan baru penunjuk fail diimbangi tepat oleh bait dari asalnya.
Sekiranya fail dibuka dalam mod teks, nilai yang disokong untuk mengimbangi adalah:
- Nol: Ia berfungsi dengan nilai asal iaitu SEEK_SET, SEEK_CUR dan SEEK_END.
- Nilai dikembalikan dengan panggilan ke ftell (stream): Nilai hanya berfungsi dengan asal SEEK_SET.
Sekiranya aliran berorientasikan luas, sekatan aliran teks dan binari diterapkan iaitu hasil ftell dibenarkan dengan SEEK_SET dan pengimbangan sifar dibenarkan dari SEEK_SET dan SEEK_CUR, tetapi tidak SEEK_END.
Fungsi fseek juga menghilangkan kesan ungetc dan membersihkan status akhir fail, jika berkenaan.
Sekiranya ralat membaca atau menulis berlaku, ferror ditetapkan dan kedudukan fail tidak terjejas.
fseek () Parameter
- stream: Aliran fail untuk diubah suai.
- mengimbangi: Bilangan watak yang akan diganti dari asal.
- asal: Kedudukan yang digunakan sebagai rujukan untuk menambah ke ofset. Nilai boleh mempunyai nilai berikut:
Nilai | Penerangan |
---|---|
SEEK_SET | Permulaan fail |
SEEK_CUR | Kedudukan penunjuk fail semasa |
SEEK_END | Akhir fail |
fseek () Nilai pulangan
- Pada kejayaan, fungsi fseek () mengembalikan sifar, bukan sifar sebaliknya.
Contoh: Bagaimana fungsi fseek () berfungsi?
#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; )
Semasa anda menjalankan program, outputnya adalah:
Nama: Erica Umur: 25 Bandar: Berlin