În acest caz, dacă nu avem voie să folosim funcții din librării externe, putem rezolva problema folosind doar structurile de control și variabilele standard din limbajul C++ 8
Pentru a rezolva această problemă, vom citi fiecare număr din fișierul numere.txt și vom calcula suma cifrelor acestuia. Dacă suma cifrelor este un număr par, vom scrie acel număr în fișierul pare.txt.
#include <iostream>
#include <fstream>
using namespace std;
int suma_cifrelor(int n) {
int suma = 0;
while (n > 0) {
suma += n % 10;
n /= 10;
}
return suma;
}
int main() {
ifstream fin(„numere.txt”);
ofstream fout(„pare.txt”);
int numar;
while (fin >> numar) {
int suma = suma_cifrelor(numar);
if (suma % 2 == 0) {
fout << numar << „\n”;
}
}
fin.close();
fout.close();
return 0;
}
Explicație:
- Funcția suma_cifrelor primește un număr n și returnează suma cifrelor acestuia.
- În funcția main deschidem fișierele de intrare (numere.txt) și de ieșire (pare.txt).
- Folosim un loop while pentru a citi fiecare număr din fișierul de intrare.
- Apelăm funcția suma_cifrelor pentru a calcula suma cifrelor numărului citit.
- Dacă suma cifrelor este un număr par, scriem acel număr în fișierul de ieșire, separat de o nouă linie.
- La final închidem ambele fișiere.
- Observați că acest cod nu conține verificarea dacă fișierul numere.txt există sau dacă se poate deschide. De asemenea, nu se face verificarea dacă fișierul pare.txt poate fi creat sau suprascris. Este recomandat să adăugați aceste verificări într-un program real.