Customize Consent Preferences

We use cookies to help you navigate efficiently and perform certain functions. You will find detailed information about all cookies under each consent category below.

The cookies that are categorized as "Necessary" are stored on your browser as they are essential for enabling the basic functionalities of the site. ... 

Always Active

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

No cookies to display.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

No cookies to display.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

No cookies to display.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

No cookies to display.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

No cookies to display.

6.8 Διαχείριση αρχείων στη γλώσσα C++

Η διαχείριση αρχείων στη γλώσσα C++ αφορά τις διαδικασίες που σχετίζονται με το άνοιγμα, την ανάγνωση, την εγγραφή, τον χειρισμό και το κλείσιμο αρχείων.

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

Για παράδειγμα, για να ανοίξουμε ένα αρχείο για ανάγνωση, χρησιμοποιούμε ένα αντικείμενο της κλάσης “ifstream” και τη συνάρτηση “open()” για να δηλώσουμε το όνομα του αρχείου που θέλουμε να ανοίξουμε. Έπειτα, μπορούμε να χρησιμοποιήσουμε την συνάρτηση “>>” για να διαβάσουμε δεδομένα από το αρχείο.

Αντίστοιχα, για να ανοίξουμε ένα αρχείο για εγγραφή, χρησιμοποιούμε ένα αντικείμενο της κλάσης “ofstream” και τη συνάρτηση “open()” για να δηλώσουμε το όνομα του αρχείου που θέλουμε να δημιουργήσουμε ή να ανοίξουμε για εγγραφή. Έπειτα, μπορούμε ν

α χρησιμοποιήσουμε τη συνάρτηση “<<” για να εγγράψουμε δεδομένα στο αρχείο.

Επιπλέον, υπάρχουν και άλλες χρήσιμες συναρτήσεις και μεθόδοι για τη διαχείριση αρχείων στη γλώσσα C++, όπως ο έλεγχος του τέλους του αρχείου, η μετακίνηση του δρομέα ανάγνωσης/εγγραφής και η κλείσιμο του αρχείου με τη χρήση της συνάρτησης “close()”.

Η διαχείριση αρχείων στη γλώσσα C++ είναι ένα σημαντικό κομμάτι της ανάπτυξης προγραμμάτων και μας επιτρέπει να διαχειριστούμε δεδομένα που αποθηκεύονται σε αρχεία με αποτελεσματικό τρόπο.

Για να χρησιμοποιήσουμε τη βιβλιοθήκη fstream, πρέπει να συμπεριλάβουμε τα αρχεία κεφαλίδας και :

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
#include <fstream>
using namespace std;
int main() {
// code
return 0;
}
#include <iostream> #include <fstream> using namespace std; int main() { // code return 0; }
#include <iostream>
#include <fstream>
using namespace std;

int main() {
  // code
  return 0;
}

Παρακάτω έχουμε ένα αναλυτικό παράδειγμα για τη διαχείριση αρχείων στη γλώσσα C++:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
#include <fstream>
using namespace std;
int main() {
// Ανοίγουμε ένα αρχείο για εγγραφή
ofstream myfile("example.txt");
if (myfile.is_open()) {
// Εγγράφουμε δεδομένα στο αρχείο
myfile << "Αυτό είναι ένα παράδειγμα." << endl;
myfile << "Αριθμός: " << 10 << endl;
// Κλείνουμε το αρχείο
myfile.close();
cout << "Το αρχείο εγγράφηκε με επιτυχία." << endl;
}
else {
cout << "Δεν ήταν δυνατό να ανοίξει το αρχείο." << endl;
}
// Ανοίγουμε το αρχείο για ανάγνωση
ifstream myfile2("example.txt");
if (myfile2.is_open()) {
string line;
// Διαβάζουμε το αρχείο γραμμή-γραμμή
while (getline(myfile2, line)) {
cout << line << endl;
}
// Κλείνουμε το αρχείο
myfile2.close();
}
else {
cout << "Δεν ήταν δυνατό να ανοίξει το αρχείο." << endl;
}
return 0;
}
#include <iostream> #include <fstream> using namespace std; int main() { // Ανοίγουμε ένα αρχείο για εγγραφή ofstream myfile("example.txt"); if (myfile.is_open()) { // Εγγράφουμε δεδομένα στο αρχείο myfile << "Αυτό είναι ένα παράδειγμα." << endl; myfile << "Αριθμός: " << 10 << endl; // Κλείνουμε το αρχείο myfile.close(); cout << "Το αρχείο εγγράφηκε με επιτυχία." << endl; } else { cout << "Δεν ήταν δυνατό να ανοίξει το αρχείο." << endl; } // Ανοίγουμε το αρχείο για ανάγνωση ifstream myfile2("example.txt"); if (myfile2.is_open()) { string line; // Διαβάζουμε το αρχείο γραμμή-γραμμή while (getline(myfile2, line)) { cout << line << endl; } // Κλείνουμε το αρχείο myfile2.close(); } else { cout << "Δεν ήταν δυνατό να ανοίξει το αρχείο." << endl; } return 0; }
#include <iostream>
#include <fstream>
using namespace std;

int main() {
    // Ανοίγουμε ένα αρχείο για εγγραφή
    ofstream myfile("example.txt");

    if (myfile.is_open()) {
        // Εγγράφουμε δεδομένα στο αρχείο
        myfile << "Αυτό είναι ένα παράδειγμα." << endl;
        myfile << "Αριθμός: " << 10 << endl;

        // Κλείνουμε το αρχείο
        myfile.close();
        cout << "Το αρχείο εγγράφηκε με επιτυχία." << endl;
    }
    else {
        cout << "Δεν ήταν δυνατό να ανοίξει το αρχείο." << endl;
    }

    // Ανοίγουμε το αρχείο για ανάγνωση
    ifstream myfile2("example.txt");

    if (myfile2.is_open()) {
        string line;

        // Διαβάζουμε το αρχείο γραμμή-γραμμή
        while (getline(myfile2, line)) {
            cout << line << endl;
        }

        // Κλείνουμε το αρχείο
        myfile2.close();
    }
    else {
        cout << "Δεν ήταν δυνατό να ανοίξει το αρχείο." << endl;
    }

    return 0;
}

Σε αυτό το παράδειγμα, ανοίγουμε ένα αρχείο με όνομα “example.txt” για εγγραφή και εγγράφουμε δεδομένα σε αυτό. Στη συνέχεια, ανοίγουμε το αρχείο για ανάγνωση και διαβάζουμε το περιεχόμενό του γραμμή-γραμμή, εμφανίζοντας το στην οθόνη.

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

Για τη δημιουργία ενός αρχείου και την εγγραφή σε αυτό, μπορείτε να χρησιμοποιήσετε την κλάση ofstream ή fstream στη γλώσσα C++. Πρώτα ορίζετε το όνομα του αρχείου που θέλετε να δημιουργήσετε.

Έπειτα, χρησιμοποιείτε τον τελεστή εισαγωγής (<<) για να εγγράψετε δεδομένα στο αρχείο. Μπορείτε να εγγράψετε μεμονωμένες τιμές, αλφαριθμητικά, ακολουθίες χαρακτήρων και οτιδήποτε άλλο θέλετε να αποθηκεύσετε.

Παρακάτω έχουμε ένα παράδειγμα κώδικα που δημιουργεί ένα αρχείο με το όνομα “example.txt” και εγγράφει μια ακολουθία αριθμών:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream myfile("example.txt"); // Δημιουργία αρχείου
if (myfile.is_open()) {
for (int i = 1; i <= 10; i++) {
myfile << i << endl; // Εγγραφή αριθμού στο αρχείο
}
myfile.close(); // Κλείσιμο αρχείου
cout << "Το αρχείο δημιουργήθηκε και εγγράφηκαν δεδομένα." << endl;
}
else {
cout << "Δεν ήταν δυνατό να δημιουργηθεί το αρχείο." << endl;
}
return 0;
}
#include <iostream> #include <fstream> using namespace std; int main() { ofstream myfile("example.txt"); // Δημιουργία αρχείου if (myfile.is_open()) { for (int i = 1; i <= 10; i++) { myfile << i << endl; // Εγγραφή αριθμού στο αρχείο } myfile.close(); // Κλείσιμο αρχείου cout << "Το αρχείο δημιουργήθηκε και εγγράφηκαν δεδομένα." << endl; } else { cout << "Δεν ήταν δυνατό να δημιουργηθεί το αρχείο." << endl; } return 0; }
#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ofstream myfile("example.txt");  // Δημιουργία αρχείου

    if (myfile.is_open()) {
        for (int i = 1; i <= 10; i++) {
            myfile << i << endl;  // Εγγραφή αριθμού στο αρχείο
        }

        myfile.close();  // Κλείσιμο αρχείου
        cout << "Το αρχείο δημιουργήθηκε και εγγράφηκαν δεδομένα." << endl;
    }
    else {
        cout << "Δεν ήταν δυνατό να δημιουργηθεί το αρχείο." << endl;
    }

    return 0;
}

Σε αυτό το παράδειγμα, δημιουργούμε ένα αρχείο με το όνομα “example.txt” και εγγράφουμε τους αριθμούς από 1 έως 10 σε αυτό το αρχείο. Τέλος, κλείνουμε το αρχείο και εμφανίζουμε μια κατάλληλη μήνυση ανάλογα με το αν η δημιουργία και η εγγραφή ήταν επιτυχής.

Για να διαβάσετε από ένα αρχείο στη γλώσσα C++, μπορείτε να χρησιμοποιήσετε την κλάση ifstream ή fstream και να καθορίσετε το όνομα του αρχείου που θέλετε να διαβάσετε.

Ένας συνηθισμένος τρόπος για να διαβάσετε το αρχείο γραμμή προς γραμμή είναι να χρησιμοποιήσετε έναν βρόχο while μαζί με τη συνάρτηση getline() που ανήκει στην κλάση ifstream. Η getline() διαβάζει μια γραμμή από το αρχείο και την αποθηκεύει σε ένα αλφαριθμητικό (string), που μπορείτε να εκτυπώσετε ή να επεξεργαστείτε όπως επιθυμείτε.

Παρακάτω έχουμε ένα παράδειγμα κώδικα που διαβάζει ένα αρχείο με το όνομα “example.txt” και εκτυπώνει το περιεχόμενο του αρχείου γραμμή προς γραμμή:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream myfile("example.txt"); // Άνοιγμα αρχείου για ανάγνωση
if (myfile.is_open()) {
string line;
while (getline(myfile, line)) { // Διάβασμα γραμμής από το αρχείο
cout << line << endl; // Εκτύπωση γραμμής
}
myfile.close(); // Κλείσιμο αρχείου
cout << "Το αρχείο διαβάστηκε επιτυχώς." << endl;
}
else {
cout << "Δεν ήταν δυνατό να ανοιχτεί το αρχείο." << endl;
}
return 0;
}
#include <iostream> #include <fstream> using namespace std; int main() { ifstream myfile("example.txt"); // Άνοιγμα αρχείου για ανάγνωση if (myfile.is_open()) { string line; while (getline(myfile, line)) { // Διάβασμα γραμμής από το αρχείο cout << line << endl; // Εκτύπωση γραμμής } myfile.close(); // Κλείσιμο αρχείου cout << "Το αρχείο διαβάστηκε επιτυχώς." << endl; } else { cout << "Δεν ήταν δυνατό να ανοιχτεί το αρχείο." << endl; } return 0; }
#include <iostream>
#include <fstream>
using namespace std;

int main() {
    ifstream myfile("example.txt");  // Άνοιγμα αρχείου για ανάγνωση

    if (myfile.is_open()) {
        string line;
        while (getline(myfile, line)) {  // Διάβασμα γραμμής από το αρχείο
            cout << line << endl;  // Εκτύπωση γραμμής
        }

        myfile.close();  // Κλείσιμο αρχείου
        cout << "Το αρχείο διαβάστηκε επιτυχώς." << endl;
    }
    else {
        cout << "Δεν ήταν δυνατό να ανοιχτεί το αρχείο." << endl;
    }

    return 0;
}

Σε α

υτό το παράδειγμα, χρησιμοποιούμε την ifstream myfile(“example.txt”) για να ανοίξουμε το αρχείο “example.txt” για ανάγνωση. Στη συνέχεια, χρησιμοποιούμε τον βρόχο while για να διαβάσουμε γραμμή προς γραμμή από το αρχείο με την getline() και να εκτυπώσουμε την κάθε γραμμή. Τέλος, κλείνουμε το αρχείο με την myfile.close() και εμφανίζουμε μια κατάλληλη μήνυση ανάλογα με το αν η ανάγνωση ήταν επιτυχής ή όχι.

27 Ιουνίου, 2023
top
error: Content is protected !!
Μετάβαση σε γραμμή εργαλείων