Cum as putea sa fac suma numerelor din fisier?
De ex. in bac.in am 1 2 3 4 5 si sa afisez in bac.out 15
As putea sa folosesc while (cin>>n)? Daca da,cum?
Răspunsuri la întrebare
Răspuns:
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("bac.in");
ofstream fout("bac.out");
int num, suma;
int main()
{
while (fin >> num)
{
suma=suma+num;
}
fout << suma;
}
Explicație:
foloseşti cin când citeşti datele de la consolă, dar din fişier
while (fin >>num), adică cât în fişier mai sunt numere de citit. Dar mai bine postez realizarea ...
denumirea fin înseamnă fişier de intrare, fout înseamnă fişier de ieşire.
Codul postat este pentru cazul cînd nu se ştie câte numere conţine fişierul de intrare.
Frecvent apar probleme cu alt enunţ. "În fişierul bac.in, pe prima linie se află un număr natural n, iar pe a doua linie se află n numere naturale separate prin spaţiu. De calculat suma numerelor de pe a doua linie şi de scris rezultatul în fişierul bac.out."
Atunci citirea va fi astfel:
fin >> n;
for (int i=0; i<n; ++i)
{ f >> num; suma=suma+num; }
fout << suma;