///==================================================================
/// Fájlbeolvasást gyakorló feladatok
/// Verzió: 2.0
///     Ebben a megoldásban már nem a mainben csinálunk mindent
///     valamint operátorok is használatba kerülnek.
/// Ha kérdés merül fel írjatok emailt, vagy facebookon!
/// Módli Hunor - mhuni95@gmail.com
///==================================================================

#include <iostream>
#include <vector>
#include <fstream>
#include <sstream>

using namespace std;

/**     Adott egy file (filmek.csv), melynek a tartalma, vesszőkkel elválsaztva:
 *      Filmcím, Kategória, Játékidő(percben), év, főszereplőt játszó színész, értékelés
 *      Pl.: The Shawshank Redemption,Drama,142,1994,Tim Robbins,9.2
 *
 *      Olvassuk be a fájlt!
 */

struct Film {           
    string cim,
           kategoria;
    int jatekido,
        ev;
    string foszereplo;
    float ertekeles;
};

istream &operator >>(istream &i, Film &f) {
    char c;
    getline(i,f.cim,',');
    getline(i,f.kategoria,',');
    i >> f.jatekido >> c >> f.ev >> c;
    getline(i,f.foszereplo,',');
    i >> f.ertekeles;
    string kuka;
    getline(i,kuka);
    return i;
}

ostream &operator <<(ostream &o, Film f) {
    o << f.cim << ", " << f.kategoria << ", " << f.jatekido << ", " <<
         f.ev << ", " << f.foszereplo << ", " << f.ertekeles << endl;
    return o;
}

void adatokBetoltese(vector<Film> &v) {
    ifstream file("filmek.csv");
    if (!file.good()) {
        cout << "Hiba a beolvasaskor!" << endl;
        return;
    }
    string dummy;
    getline(file,dummy);
    Film temp;
    while (file >> temp) {
        v.push_back(temp);
    }
    return;
}

void konzolraIratas(vector<Film> v) {
    for (unsigned int i=0;i<v.size();i++) {
        cout << v[i];
    }
}

int main() {

    vector<Film>osszesFilm;

    adatokBetoltese(osszesFilm);

    konzolraIratas(osszesFilm);

    return 0;
}
