zapis do pliku csv i odczyt

0

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ę.

0
cichociemny napisał(a)

Są błędy w kompilacji.

Co robię źle ?

Robisz źle, że nie wkleiłeś jakie są te błędy w kompilacji.

0

Piszę w Code::Blocks.

user image

0

Nikt nic ? :(

0

Pierwszy błąd jest w funkcji main i dotyczy instrukcji swich, to może jeszcze pokaż ten kawałek kodu.

0

Myślałem, że gdzieś break; nie dodałem, ale nie, wszędzie jest dodany.

Fragment:

 
            case '6': //Eksport/Import do txt, csv

                cout << "1. Import." << endl;
                cout << "2. Eksport." << endl << endl;

                cout << "Wybor: "; cin >> wybor2;
                cout << endl;

                switch(wybor2)
                {
                    case '1':

                        ifstream in("baza.csv");
                        Student s;
                        while (in >> s)
                        {
                            studenci.push_back(s);
                        }
                        in.close();

                        system("pause");
                        break;

                    case '2':

                        ofstream fout("baza.csv");
                        for (i = 0; i < studenci.size(); ++i)
                        {
                            fout << studenci[i];
                        }
                        fout.close("baza.csv");

                        system("pause");
                        break;

                    default:

                        blad();
                        break;
                }

                break;

1 użytkowników online, w tym zalogowanych: 0, gości: 1