|

Gestionarea Fișierelor Text în C++ 8


1. Obiectivele lecției:

  • Să înțeleagă conceptul și utilizarea fișierelor text în C++.
  • Să învețe cum să citească dintr-un fișier text și să scrie în acesta.
  • Să implementeze exemple practice care implică utilizarea fișierelor text.

2. Introducere

Fișierele text sunt folosite pentru a stoca și manipula date sub formă de text. În C++, gestionarea fișierelor se face prin intermediul bibliotecii <fstream>, care oferă trei clase principale:

  1. ofstream – pentru scriere în fișiere.
  2. ifstream – pentru citire din fișiere.
  3. fstream – pentru citire și scriere în fișiere.

3. Utilizarea fișierelor text


1. Deschiderea și închiderea fișierelor

  • Sintaxă generală:

#include <fstream>

using namespace std;

ofstream fisierScriere(„nume_fisier.txt”);  // Scriere

ifstream fisierCitire(„nume_fisier.txt”);  // Citire

fstream fisierGeneral(„nume_fisier.txt”);  // Citire și scriere

  • Metode pentru deschiderea fișierelor:

fisier.open(„nume_fisier.txt”, mod);

fisier.close();

  • Moduri de deschidere (flag-uri):
    • ios::in – Deschidere pentru citire.
    • ios::out – Deschidere pentru scriere.
    • ios::app – Scriere la finalul fișierului (append).
    • ios::trunc – Golirea fișierului la deschidere.
    • ios::binary – Deschidere în mod binar.

2. Scrierea în fișiere

  • Exemplu simplu:

#include <fstream>

using namespace std;

int main() {

    ofstream fisier(„exemplu.txt”);

    if (fisier.is_open()) {

        fisier << „Salut lume!” << endl;

        fisier << „Aceasta este o linie de text.” << endl;

        fisier.close();

        cout << „Datele au fost scrise în fisier.” << endl;

    } else {

        cout << „Nu s-a putut deschide fisierul pentru scriere.” << endl;

    }

    return 0;

}


3. Citirea din fișiere

  • Exemplu simplu:

#include <fstream>

#include <iostream>

using namespace std;

int main() {

    ifstream fisier(„exemplu.txt”);

    if (fisier.is_open()) {

        string linie;

        while (getline(fisier, linie)) {

            cout << linie << endl;

        }

        fisier.close();

    } else {

        cout << „Nu s-a putut deschide fisierul pentru citire.” << endl;

    }

    return 0;

}


4. Citire și scriere simultană

  • Exemplu:

#include <fstream>

#include <iostream>

using namespace std;

int main() {

    fstream fisier(„exemplu.txt”, ios::in | ios::out | ios::app);

    if (fisier.is_open()) {

        // Scriere

        fisier << „O noua linie adaugata.” << endl;

        // Resetarea poziției pentru citire

        fisier.seekg(0, ios::beg);

        // Citire

        string linie;

        while (getline(fisier, linie)) {

            cout << linie << endl;

        }

        fisier.close();

    } else {

        cout << „Nu s-a putut deschide fisierul.” << endl;

    }

    return 0;

}


5. Verificarea erorilor

  • Metode utile:
    • fisier.is_open() – Verifică dacă fișierul s-a deschis corect.
    • fisier.eof() – Verifică sfârșitul fișierului.
    • fisier.fail() – Verifică dacă o operație a eșuat.

4. Exemple practice


Exemplu 1: Scrierea numerelor într-un fișier

#include <fstream>

using namespace std;

int main() {

    ofstream fisier(„numere.txt”);

    if (fisier.is_open()) {

        for (int i = 1; i <= 10; i++) {

            fisier << i << endl;

        }

        fisier.close();

    } else {

        cout << „Eroare la deschiderea fisierului.” << endl;

    }

    return 0;

}


Exemplu 2: Citirea numerelor dintr-un fișier

#include <fstream>

#include <iostream>

using namespace std;

int main() {

    ifstream fisier(„numere.txt”);

    if (fisier.is_open()) {

        int numar;

        while (fisier >> numar) {

            cout << numar << endl;

        }

        fisier.close();

    } else {

        cout << „Eroare la deschiderea fisierului.” << endl;

    }

    return 0;

}


Exemplu 3: Copierea conținutului unui fișier în altul

#include <fstream>

#include <iostream>

using namespace std;

int main() {

    ifstream fisierCitire(„sursa.txt”);

    ofstream fisierScriere(„destinatie.txt”);

    if (fisierCitire.is_open() && fisierScriere.is_open()) {

        string linie;

        while (getline(fisierCitire, linie)) {

            fisierScriere << linie << endl;

        }

        fisierCitire.close();

        fisierScriere.close();

    } else {

        cout << „Eroare la deschiderea fișierelor.” << endl;

    }

    return 0;

}


5. Activități practice pentru elevi

  1. Scrieți un program care citește o propoziție de la utilizator și o salvează într-un fișier text.
  2. Realizați un program care numără câte linii sunt într-un fișier text.
  3. Implementați un program care caută un cuvânt într-un fișier text și afișează toate liniile care conțin acel cuvânt.

6. Scheme logice

  1. Scriere într-un fișier:
    • Start -> Deschidere fișier pentru scriere -> Scriere date -> Închidere fișier -> Stop.
  2. Citire dintr-un fișier:
    • Start -> Deschidere fișier pentru citire -> Citire linie -> Afișare linie -> Stop.
  3. Copiere fișier:
    • Start -> Deschidere fișiere sursă și destinație -> Citire linie din sursă -> Scriere linie în destinație -> Stop.

7. Concluzie

  • Gestionarea fișierelor text este o abilitate esențială în programare.
  • Fișierele permit stocarea persistentă a datelor, iar bibliotecile din C++ oferă metode flexibile pentru citire și scriere.
  • Practica este importantă pentru a înțelege utilizarea corectă și eficientă a fișierelor text.

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *