Μαθήματα Πληροφορικής & Προγραμματισμού

Η εγγραφή κειμένου σε αρχείο στη Cpp

Η εγγραφή κειμένου σε αρχείο στη Cpp μέσω ενός προγράμματος κατέχει σημαντικό ρόλο στην αποθήκευση και διατήρηση δεδομένων και πληροφορίας στο σκληρό δίσκο ενός υπολογιστή. Η κωδικοποίηση των δεδομένων μπορεί να οριστεί ως απλό κείμενο ή δυαδική μορφή για άμεση ανάγνωση από το σύστημα.

Η βασική βιβλιοθήκη fstream της C++ παρέχει έτοιμες μεθόδους για την εργασία με αρχεία (δημιουργία, άνοιγμα, εγγραφή, ανάγνωση κ.ά.). Για τη χρήση της βιβλιοθήκης αρκεί να συνταχθεί το όνομά της στην περιοχή των δηλώσεων στην αρχή του προγράμματος:

#include <fstream>

Για κάθε αρχείο που πρόκειται να ανοιχθεί- δημιουργηθεί, πρέπει πρωτίστως να δημιουργηθεί ένα αντικείμενο τύπου filestream. Για την εγγραφή σε αρχείο, το αντικέιμενο είναι τύπου ofstream (output filestream).  Το αντικείμενο αυτό χρησιμοποιείται και λειτουργεί εγγράφοντας στο αρχείο που δημιουργείται, όπως ακριβώς η μέθοδος cout που γράφει στο standard output.

Η εγγραφή κειμένου σε αρχείο στη Cpp: δημιουργία αντικειμένου ofstream

Για τη δήλωση και δημιουργία ενός αντικειμένου τύπου ofstream, απαιτείται η σύνταξη της δεσμευμένης λέξης ofstream, στη συνέχεια το επιθυμητό -και επιτρεπτό- όνομα του αντικειμένου και τέλος το όνομα του αρχείου– στόχου εγγραφής μέσα σε παρενθέσεις. Το όνομα του αρχείου είναι μία συμβολοσειρά και επομένως πρέπει να περικλείεται από διπλά quotes. Μία εντολή δημιουργίας τέτοιου αντικειμένου έχει την εξής μορφή:

ofstream myOfstreamΝame ( “nameOfFileToWriteTo” ) ;

Το όρισμα που καθορίζει το αρχείο εγγραφής μπορεί εναλλακτικά να περιλαμβάνει το ακριβές μονοπάτι του αρχείου, για παράδειγμα να έχει τη μορφή  “C:\data\myFile.txt”. Σε διαφορετική περίπτωση, το πρόγραμμα αναζητά ή/και δημιουργεί το αρχείο βάσει ονόματος στο διαμένοντα φάκελο του προγράμματος.

Πριν την εγγραφή πληροφορίας στο αρχείο- στόχο, το πρόγραμμα πρέπει πρώτα να ελέγξει εάν το αντικείμενο ofstream έχει δημιουργηθεί. Τυπικά η διαδικασία αυτή αξιοποιεί μία απλή δομή if, κατά την οποία επιτρέπεται και ξεκινά η εγγραφή μόνο στην περίπτωση αληθούς συνθήκης ελέγχου (επιτυχής έλεχγος δημιουργίας ofstream).

[ms_alert icon=”fa-star” box_shadow=”no” dismissable=”no” class=”” id=””]Εάν το καθορισμένο όνομα αρχείου δεν εντοπίζεται στο διαμένοντα φάκελο του προγράμματος, τότε δημιουργείται ένα αρχείο με το όνομα αυτό και ξεκινά η εγγραφή σε αυτό. Στην περίπτωση που το καθορισμένο όνομα αρχείου προϋπάρχει της εκτέλεσης του προγράμματος, από τις προκαθορισμένες ρυθμίσεις το αρχείο επανεγγράφεται από το πρόγραμμα χωρίς καμία προειδοποίηση.[/ms_alert]

Μετά την εγγραφή στο προκαθορισμένο αρχείο- στόχο, πρέπει πάντα να κληθεί για το αντικείμενο ofstream η μέθοδος close( ) προκειμένου να τερματιστεί η ροή πληροφορίας προς το αρχείο. Σε άλλη περίπτωση, η ανάγνωσή του πιθανόν να μην είναι εφικτή, καθώς δεν εντοπίζεται πουθενά το EOF.

Η εγγραφή κειμένου σε αρχείο στη Cpp: δήλωση, δημιουργία και χρήση σε πρόγραμμα με παράδειγμα

Το πρόγραμμα που ακολουθεί επιδεικνύει την απαιτούμενη σύνταξη για τη δήλωση χρήσης της βιβλιοθήκης fstream, τη δημιουργία ενός αντικειμένου ofstream και για τη χρήση του κατά την υλοποίηση εγγραφής μίας συμβολοσειράς σε αρχείο.

#include <fstream>  //1
#include <string.h> 
#include <iostream> 
using namespace std ;
int main()
{
   string myText = “\n\tHello!” ; //7
   ofstream myOfstreamObject( “myTextFile.txt” ) ; //8
   myText.append( “\n\tMy name is TWRITER.” ) ; //9
   myText.append( “\n\tI am 29 years old.” ) ; //10
   myText.append( “\n\tThis is my article regarding syntax of writing to a text file by programming with C++.” ) ; //11
   myText.append( “\n\tThank you for reading my article!” ) ; //12
   if ( ! myOfstreamObject ) //13
   {
     cout << “Failed to open file for writing...” << endl ; //14
     return -1 ;  //15
   }
   myOfstreamObject << myText << endl ; //16
   myOfstreamObject.close() ; //17
   cout << “Writing to file successful... Now you may open and read the text file!” << endl ; //18
   return 0 ;
}

Ας μελετήσουμε τις γραμμές του προγράμματος μία προς μία:

  • 1: δήλωση χρήσης της βιβλιοθήκης fstream
  • 7: δήλωση, δημιουργία και αρχικοποίηση μίας μεταβλητής με όνομα myText τύπου string
  • 8: δήλωση και δημιουργία ενός αντικειμένου με όνομα myOfstreamObject τύπου ofstream (παρατηρούμε την παράμετρο “myTextFile.txt” που αποτελεί το όνομα του αρχείου-στόχου)
  • 9-12: πρόσθεση επέκτασης κειμένου στη μεταβλητή myText
  • 13: εκκίνηση δομής if για τον έλεγχο υπαρκτού αντικειμένου τύπου ofstream με όνομα myOfstreamObject
  • 14: εμφάνιση μηνύματος σε περίπτωση ανεπιτυχούς δημιουργίας του myOfstreamObject
  • 15: μήνυμα εξόδου από το πρόγραμμα με ειδοποίηση σφάλματος
  • 16: εγγραφή της τιμής της μεταβλητής myText στο προκαθορισμένο αρχείο μέσω του αντικειμένου myOfstreamObject
  • 17: κλείσιμο του αντικειμένου myOfstreamObject με τη μέθοδο close( )
  • 18: εμφάνιση μηνύματος επιτυχούς εγγραφής

Το αποτέλεσμα που θα έχουμε στην οθόνη σε ανεπιτυχή εγγραφή:
Failed to open file for writing…

Το αποτέλεσμα που θα έχουμε στην οθόνη σε επιτυχή εγγραφή:
Writing to file successful… Now you may open and read the text file!

Το περιεχόμενο του αρχείου όπου πραγματοποιήθηκε η εγγραφή:
Hello!
My name is TWRITER.
I am 29 years old.
This is my article regarding syntax of writing to a text file by programming with C++.
Thank you for reading my article!

Αφήστε ένα Σχόλιο

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Αυτός ο ιστότοπος χρησιμοποιεί το Akismet για να μειώσει τα ανεπιθύμητα σχόλια. Μάθετε πώς υφίστανται επεξεργασία τα δεδομένα των σχολίων σας.