M3 L2 Info fișiere text în C++

Pentru operațiile de intrare/ieșire în programele C++ se pot folosi fișiere text. Aceste fișiere text se creează automat sau manual în același folder al proiectului de tip consolă în care avem și programul propriu-zis adică fișierul main.cpp.

Biblioteca pentru fișiere text se numește fstream și se adaugă obligatoriu în antetul programului.

Funcția ofstream creează sau deschide fișierul pentru scriere.

Exemplu:

ofstream f("nume_fisier.txt"); //unde f este numele fisierului în program iar nume_fisier.txt este numele fișierului pe disc

Program: scrie numerele întregi citite de la tastatură în fișierul numere.txt pe care îl creează automat dacă nu există sau îl suprascrie dacă există.

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    // Creearea sau deschiderea fișierului pentru scriere
    ofstream f("numere.txt");

    if (!f) {
        cerr << "Eroare la deschiderea fisierului!" << endl;
        return 1;
    }

    int n;
    cout << "Introduceti cate numere doriti sa scrieti: ";
    cin >> n;

    cout << "Introduceti " << n << " numere intregi:" << endl;
    for (int i = 0; i < n; i++) {
        int numar;
        cin >> numar;
        // Scrie fiecare număr în fișier, separat prin spațiu
        f << numar << " ";
    }

    f.close(); // Închide fișierul
    cout << "Numerele au fost scrise in fisierul 'numere.txt'." << endl;

    return 0;
}

Observație: fișierul numere.txt se creează automat în folderul cu numele programului.

Funcția ifstream deschide fișierul pentru citire din el.

Exemplu:

ifstream f("nume_fisier.txt"); //unde f este numele fisierului în program iar nume_fisier.txt este numele fișierului pe disc

Program: citește numerele întregi din fișierul numere.txt și le afișează pe ecran.

Observație: dacă fișierul numere.txt nu există în folderul programului el trebuie creeat manual de către noi și apoi trebuiesc scrise numere întregi pe prima linie a acestui fișier.

#include <iostream>
#include <fstream>
using namespace std;

int main() {
    // Deschide fișierul "numere.txt" pentru citire
    ifstream g("numere.txt");
    if (!g) {
        cerr << "Eroare la deschiderea fisierului!" << endl;
        return 1;
    }

    cout << "Numerele din fisier sunt:" << endl;
    int numar;
    while (g >> numar) { // Citește fiecare număr din fișier
        cout << numar << " "; // Afișează numărul pe ecran
    }

    g.close(); // Închide fișierul
    cout << endl;

    return 0;
}

Temă1: Să se scrie un program care citește numere întregi dintr-un fișier procesează aceste numere și afișează aceste numere în alt fișier(suma lor).

Temă2: Să se scrie un program care citește numere întregi dintr-un fișier separă numerele pare de cele impare și le scrie în fișiere separate.