Fişierele text alfa.txt şi beta.txt conțin numele unor persoane, câte o linie pentru fiecare persoană. Ştiind că în fiecare fişier numele sunt memorate în ordine alfabetică, scrieți un program care să construiască fişierul gama.txt care să conțină toate numele din cele două fişiere date, în ordinea alfabetică. 1

#include <iostream>

#include <fstream>

#include <string>

using namespace std;

int main() {

    // deschidem fisierele alfa.txt si beta.txt

    ifstream alfa(„alfa.txt”);

    ifstream beta(„beta.txt”);

    // deschidem fisierul gama.txt pentru scriere

    ofstream gama(„gama.txt”);

    string nume_alfa, nume_beta;

    // citim primul nume din ambele fisiere

    getline(alfa, nume_alfa);

    getline(beta, nume_beta);

    // cat timp putem citi din ambele fisiere

    while (!alfa.eof() && !beta.eof()) {

        // comparam numele din cele doua fisiere

        if (nume_alfa < nume_beta) {

            // scriem numele din alfa.txt in fisierul gama.txt

            gama << nume_alfa << endl;

            // citim urmatorul nume din alfa.txt

            getline(alfa, nume_alfa);

        } else {

            // scriem numele din beta.txt in fisierul gama.txt

            gama << nume_beta << endl;

            // citim urmatorul nume din beta.txt

            getline(beta, nume_beta);

        }

    }

    // cat timp mai putem citi din fisierul alfa.txt

    while (!alfa.eof()) {

        // scriem numele din alfa.txt in fisierul gama.txt

        gama << nume_alfa << endl;

        // citim urmatorul nume din alfa.txt

        getline(alfa, nume_alfa);

    }

    // cat timp mai putem citi din fisierul beta.txt

    while (!beta.eof()) {

        // scriem numele din beta.txt in fisierul gama.txt

        gama << nume_beta << endl;

        // citim urmatorul nume din beta.txt

        getline(beta, nume_beta);

    }

    // inchidem toate fisierele

    alfa.close();

    beta.close();

    gama.close();

    cout << „S-a generat fisierul gama.txt.” << endl;

    return 0;

}

Programul deschide cele două fișiere de intrare și unul de ieșire și citește primul nume din fiecare fișier. Apoi, compară cele două nume și scrie numele mai mic în fișierul de ieșire. Acest proces se repetă până când ambele fișiere de intrare sunt epuizate.

În cazul în care unul dintre fișiere a fost epuizat, programul scrie restul numelor din celălalt fișier în fișierul de ieșire.

În final, toate cele trei fișiere sunt închise, iar programul afișează un mesaj de confirmare.

Un exemplu de fișier alfa.txt ar putea fi:

Ana

Bogdan

Cristina

Elena

Un exemplu de fișier beta.txt ar putea fi:

Alex

Diana

Gabriel

Ionut

Notă: Am ales nume aleatorii doar pentru exemplificare.

Similar Posts

Lasă un răspuns

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