Mam problem z zapisem danych z vector do pliku csv.
Dołączyłem...
#include <fstream>
W klasie zadeklarowałem...
friend ostream &operator <<(ostream &, const Student &);
friend istream &operator >>(istream &, const Student &);
W kodzie - odczyt
//Import - odczyt z bazy z pliku csv
ifstream in("baza.csv");
Student s;
while (in >> s)
{
studenci.push_back(s);
}
in.close();
W kodzie - zapis
//Eksport - zapis bazy do pliku csv
ofstream fout("baza.csv");
for (i = 0; i < studenci.size(); ++i)
{
fout << studenci[i];
}
fout.close("baza.csv");
Definicje tego, co zadeklarowałem w klasie
ofstream &operator <<(ostream &out, const Student &s)
{
out << s.lp << "," << s.imie << "," << s.nazwisko << "," << s.nr_indeksu << "," << s.srednia << "\r\n";
return out;
}
istream &operator >>(istream &in, Student &s)
{
string str;
in >> str;
unsigned pos, ppos = 0;
unsigned ctr = 0;
while ((pos = str.find(',', ppos)) != string::npos)
{
unsigned len = pos - ppos;
switch (++ctr)
{
case 1:
s.imie = str.substr(ppos, len);
break;
case 2:
s.nazwisko = str.substr(ppos, len);
break;
case 3:
s.lp = atoi(str.substr(ppos, len).c_str());
break;
case 4:
s.nr_indeksu = atoi(str.substr(ppos, len).c_str());
break;
case 5:
s.srednia = atof(str.substr(ppos, len).c_str());
break;
}
ppos = pos + 1;
}
return in;
}
Są błędy w kompilacji.
Co robię źle ?
P.S.: nie wrzucam całego kodu bazy danych, bo to ~700 linijek i nie wiem czy ktoś będzie chciał to przeglądać, ale jeśli zajdzie potrzeba, to proszę napisać, wrzucę.