Both sides previous revisionPrevious revisionNext revision | Previous revision |
cpp:file_io [2019/05/20 18:13] – gthanos | cpp:file_io [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 |
---|
====== Είσοδος και έξοδος αρχείων ====== | ====== Είσοδος και έξοδος αρχείων ====== |
| |
Η C++ παρέχει τις παρακάτω κλάσεις για είσοδο και έξοδο από αρχεία. | Η //standard// βιβλιοθήκη της C++ παρέχει τις παρακάτω κλάσεις για είσοδο και έξοδο από αρχεία. |
- **[[http://www.cplusplus.com/reference/fstream/ifstream/|ifstream]]:** Κλάση για διάβασμα από αρχείο. | - **[[http://www.cplusplus.com/reference/fstream/ifstream/|ifstream]]:** Κλάση για διάβασμα από αρχείο. |
- **[[http://www.cplusplus.com/reference/fstream/ofstream/|ofstream]]:** Κλάση για γράψιμο σε αρχείο. | - **[[http://www.cplusplus.com/reference/fstream/ofstream/|ofstream]]:** Κλάση για γράψιμο σε αρχείο. |
</code> | </code> |
| |
===== Άνοιγμα αρχείου για διάβασμα και γράψιμο ===== | ===== Άνοιγμα αρχείου για ανάγνωση και εγγραφή ===== |
| |
Το άνοιγμα των αρχείων γίνεται μέσω της μεθόδου //open// η οποία προδιαγράφεται παρακάτω: | Το άνοιγμα των αρχείων γίνεται μέσω της μεθόδου //open// η οποία προδιαγράφεται παρακάτω: |
| |
^ Τιμή ^ Επεξήγηση ^ | ^ Τιμή ^ Επεξήγηση ^ |
| **ios::in** | Άνοιγμα για διάβασμα από το αρχείο. | | | **ios::in** | Άνοιγμα για ανάγνωση από το αρχείο. | |
| **ios::out** | Άνοιγμα για γράψιμο στο αρχείο. | | | **ios::out** | Άνοιγμα για εγγραφή στο αρχείο. | |
| **ios::binary** | Άνοιγμα για διάβασμα ή γράψιμο σε δυαδικό αρχείο. | | | **ios::binary** | Άνοιγμα για ανάγνωση ή εγγραφή σε δυαδική μορφή. | |
| **ios::ate** | Θέτει τη θέση γραψίματος στο τέλος του αρχείου. Εάν δεν προσδιοριστεί το συγκεκριμένο //flag// η θέση γραψίματος τίθεται στην αρχή. | | | **ios::app** | Η θέση εγγραφής τίθεται στο τέλος του αρχείου. Εάν επιχειρήσετε να μεταβάλλετε τη θέση εγγραφής μέσω της συνάρτησης [[cpp:stream_random_io#μεταβολή_της_θέσης_ανάγνωσης_ή_εγγραφής|seekp]] __αυτό δεν θα έχει αποτέλεσμα__. | |
| **ios::app** | Η θέση γραψίματος τίθεται στο τέλος του αρχείου, προσθέτοντας πληροφορία (//append//) στο υφιστάμενο αρχείο. | | | **ios::ate** | Θέτει τη θέση εγγραφής στο τέλος του αρχείου. Εάν δεν προσδιοριστεί το συγκεκριμένο //flag// η θέση εγγραφής τίθεται στην αρχή. Μπορείτε να μεταβάλλετε τη θέση εγγραφής μέσω της συνάρτησης [[cpp:stream_random_io#μεταβολή_της_θέσης_ανάγνωσης_ή_εγγραφής|seekp]] | |
| **ios::trunc** | Εάν το αρχείο υπάρχει ήδη και έχει περιεχόμενο, το υφιστάμενο περιεχόμενο διαγράφεται. | | | **ios::trunc** | Εάν το αρχείο υπάρχει ήδη και έχει περιεχόμενο, το υφιστάμενο περιεχόμενο διαγράφεται. | |
| |
===== Αρχεία κειμένου ===== | ===== Αρχεία κειμένου ===== |
| |
//Streams// κειμένου είναι εκείνα τα streams που κατά το άνοιγμα του αρχείου δεν έχουν ορισμένο το //flag **ios::binary**//. Τα αρχεία αυτά υποθέτουμε ότι περιέχουν κείμενο και κατ' επέκταση μπορούμε να τα διαβάσουμε υποθέτοντας ότι οι λέξεις χωρίζονται μεταξύ τους από κενό χαρακτήρα ή χαρακτήρα αλλαγής γραμμής (''' ','\t','\n','\x0B','\f','\r''') και οι γραμμές χωρίζονται με χαρακτήρα αλλαγής γραμμής ('''\r','\n'''). | //Streams// κειμένου είναι εκείνα τα streams που κατά το άνοιγμα του αρχείου δεν έχουν ορισμένο το //flag **ios::binary**//. Τα αρχεία αυτά υποθέτουμε ότι περιέχουν μόνο εκτυπώσιμους χαρακτήρες (δηλ. κείμενο) και κατ' επέκταση μπορούμε να τα διαβάσουμε υποθέτοντας ότι οι λέξεις χωρίζονται μεταξύ τους από κενό χαρακτήρα ή χαρακτήρα αλλαγής γραμμής (''' ','\t','\n','\x0B','\f','\r''') και οι γραμμές χωρίζονται με χαρακτήρα αλλαγής γραμμής ('''\r','\n'''). |
| |
Ο τρόπος με τον οποίο γράφετε ή διαβάζετε είναι ο τρόπος που το κάνετε για τη βασική είσοδο και έξοδο. | Ο τρόπος με τον οποίο γράφετε ή διαβάζετε είναι ο τρόπος που το κάνετε για τη βασική είσοδο και έξοδο. |