Mam problem z wczytywaniem, mianowicie po wczytaniu i wyświetleniu, plik zostaje wyczyszczony. Nie wiem w którym momencie to następuje. Proszę o jakąkolwiek podpowiedź.
Fragmenty kodu wpływające na wyswietlanie:
string Klient :: dodajKlienta(void)
{
string wiersz;
wiersz.append(to_string(numerID));
wiersz.append(",");
wiersz.append(nazwa);
wiersz.append(",");
wiersz.append(to_string(NIP));
wiersz.append(",");
wiersz.append(to_string(kodPocztowy));
wiersz.append(",");
wiersz.append(miejscowosc);
wiersz.append(",");
wiersz.append(adres);
return wiersz;
}
Funkcja dzieląca:
vector<string> Wyodrebnij(string wiersz)
{
vector<string> skladowe;
string bazowa;
stringstream kolumna(wiersz);
while (getline(kolumna, bazowa, ','))
if(!bazowa.empty())
{
skladowe.push_back(bazowa);
}
return skladowe;
}
vector<string> Wyodrebnij(string wiersz, char ciag)
{
vector<string> skladowe;
string bazowa;
stringstream kolumna(wiersz);
while (getline(kolumna, bazowa, ciag))
if(!bazowa.empty())
{
skladowe.push_back(bazowa);
}
return skladowe;
}
void Baza :: klientDodaj()
{
if(otwartyPlik == true)
{
string wiersz;
while (! plik.eof() )
{
getline(plik, wiersz);
if(wiersz.find("")!= string::npos)
{
vector<string> podziel=Wyodrebnij(wiersz,',');
for(int i=6; i<(int)podziel.size(); i++);
podziel[0].erase(0,0);
podziel[1].erase(0,0);
podziel[2].erase(0,0);
podziel[3].erase(0,0);
podziel[4].erase(0,0);
podziel[5].erase(0,0);
Klient *KlientN = new Klient(atoi(podziel[0].c_str()), podziel[1].c_str(), atoi(podziel[2].c_str()), atoi(podziel[3].c_str()), podziel[4].c_str(), podziel[5].c_str() );
Klienci.push_back(KlientN);
KlientN=NULL;
}
}
plik.close();
otwartyPlik = false;
}
}
Fragment z maina:
// Operacje na pliku
Baza plik(wejscie);
if(plik.bladPliku == false)
{
// tu będą metody wyszukiwania
plik.wyswietlPlik(wejscie);
}
else
{
cout << "Sciezka pliku z baza danych jest niepoprawna!" << endl << endl;
}