Piszę sobie po raz kolejny bankomat, tylko coraz to bardziej rozbudowany i pojawił mi się problem z wczytywanie z pliku. Do tabeli 'dluznicy' przypisuje mi jakąś dziwną liczbę, nie wiem dlaczego to tak się dzieje. Może ktoś wie o co chodzi, bo ja nie mogę sobie z tym poradzić. W niektórych miejscach funkcji wpisałem wypisywanie na ekran tylko po to, aby zobaczyć w którym momencie coś się psuje i gdy wpisałem 'cout << "Dluznicy: " << dluznicy[1];' pokazuje mi jakąś dziwnie wielką liczbę, a powinno w tym miejscu być 0.
void Klient::zadluzanie(int *index, int *pozyczka)
{
fstream plik;
Bankomat bank;
bank.wczytaj_ilosc_klientow();
int *dluznicy = new int[bank.ilosc_klientow];
int licznik = 0;
if(*index == '0')
plik.open("dluznicy_DAN.txt", ios::in);
else if(*index == '1')
plik.open("dluznicy_KADA.txt", ios::in);
cout << "Index: " << *index << endl;
cout << "Pozyczka: " << *pozyczka << endl;
system("pause");
if(plik.good() == false)
{
system("cls");
cout << "Blad polaczeenia z baza danych!";
Sleep(2000);
}
else
{
while(!plik.eof())
{
plik >> dluznicy[licznik];
licznik++;
}
cout << "Dluznicy: " << dluznicy[1];
system("pause");
plik.close();
plik.clear();
if(*index == '0')
plik.open("dluznicy_DAN.txt", ios::out);
else if(*index == '1')
plik.open("dluznicy_KADA.txt", ios::out);
if(plik.good() == false)
{
system("cls");
cout << "Blad polacznia z baza danych!";
Sleep(2000);
}
else
{
for(int i = 0; i < bank.ilosc_klientow; i++)
{
if(i == _index)
plik << *pozyczka << endl;
else
plik << dluznicy[i] << endl;
}
}
}
delete [] dluznicy;
plik.close();
plik.clear();
}