C ++ fseek () - C ++ Standard Βιβλιοθήκη

Η συνάρτηση 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. Μπορεί να έχει τις ακόλουθες τιμές:
τιμές προέλευσης fseek ()
αξία Περιγραφή
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 Πόλη: Βερολίνο

ενδιαφέροντα άρθρα...