Η συνάρτηση fseek () στο C ++ ορίζει την ένδειξη θέσης αρχείου για τη δεδομένη ροή αρχείων.
Η συνάρτηση fseek () ορίζεται στο αρχείο κεφαλίδας.
πρωτότυπο fseek ()
int fseek (ροή FILE *, μακρά μετατόπιση, int προέλευση);
Εάν το αρχείο ανοίξει σε δυαδική λειτουργία, η νέα θέση του δείκτη αρχείου αντισταθμίζεται ακριβώς από τα byte από την προέλευση.
Εάν το αρχείο ανοίξει σε λειτουργία κειμένου, οι υποστηριζόμενες τιμές για μετατόπιση είναι:
- Μηδέν: Λειτουργεί με οποιαδήποτε τιμή προέλευσης, δηλαδή SEEK_SET, SEEK_CUR και SEEK_END.
- Η τιμή επιστρέφεται από μια κλήση στο ftell (stream): Λειτουργεί μόνο με την προέλευση του SEEK_SET.
Εάν η ροή έχει ευρεία κατεύθυνση, εφαρμόζονται οι περιορισμοί τόσο των κειμένων όσο και των δυαδικών ροών, δηλαδή το αποτέλεσμα του ftell επιτρέπεται με SEEK_SET και το μηδέν μετατόπιση επιτρέπεται από SEEK_SET και SEEK_CUR, αλλά όχι SEEK_END.
Η συνάρτηση fseek αναιρεί επίσης τα αποτελέσματα του ungetc και διαγράφει την κατάσταση του τέλους του αρχείου, εάν υπάρχει.
Εάν παρουσιαστεί σφάλμα ανάγνωσης ή εγγραφής, ο ferror έχει ρυθμιστεί και η θέση του αρχείου δεν επηρεάζεται.
fseek () Παράμετροι
- stream: Η ροή αρχείων για τροποποίηση.
- offset: Ο αριθμός των χαρακτήρων που πρέπει να αντικατασταθούν από την προέλευση.
- origin: Θέση που χρησιμοποιείται ως αναφορά για προσθήκη στο offset. Μπορεί να έχει τις ακόλουθες τιμές:
αξία | Περιγραφή |
---|---|
SEEK_SET | Αρχή αρχείου |
SEEK_CUR | Τρέχουσα θέση δείκτη αρχείου |
SEEK_END | Τέλος αρχείου |
fseek () Επιστροφή τιμή
- Κατά την επιτυχία, η συνάρτηση fseek () επιστρέφει μηδέν, μη μηδενικά.
Παράδειγμα: Πώς λειτουργεί η λειτουργία fseek ();
#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; )
Όταν εκτελείτε το πρόγραμμα, η έξοδος θα είναι:
Όνομα: Erica Ηλικία: 25 Πόλη: Βερολίνο