Cum citesc dintr-un fișier text în C++?

Cu ifstream din <fstream>: deschizi fișierul cu numele exact din enunț și citești cu >> ca de la tastatură. „while (fin >> x)” citește până la sfârșit.

Ai nevoie de <fstream>. Deschizi fișierul și îl folosești exact ca pe cin:

#include <fstream>
using namespace std;

ifstream fin("date.in");
ofstream fout("date.out");

int main() {
    int x;
    long long suma = 0;
    while (fin >> x) {
        suma += x;
    }
    fout << suma;
    fin.close();
    fout.close();
    return 0;
}

while (fin >> x) citește până la sfârșitul fișierului, oricâte valori ar fi și oricum ar fi aranjate, pentru că >> sare peste spații și linii noi. Dacă enunțul spune câte valori sunt, folosești un for.

Două greșeli care costă puncte unui program altfel corect:

  • numele fișierului scris altfel decât în enunț, de exemplu bac.txt în loc de bac.in sau cu majusculă: programul nu găsește nimic;
  • afișarea pe ecran în loc de fișier, când se cere scrierea în fișier: un cout rămas din testare lasă fișierul de ieșire gol.

Ultima problemă de la Subiectul III citește de obicei datele dintr-un fișier și afișează rezultatul pe ecran, așa că verifică în enunț unde trebuie să apară rezultatul. Lecția Fișiere text are și citirea unei linii cu spații.

Lecția care merge mai departe: Fișiere text