To niżej nie działa jak trzeba. Zamiast poprawnych PINów z notatnika pokazuje jakieś wielkie liczby i nie wiem jak sobie z tym poradzić. Śmieszne jest to, że jeśli użytkownik chce się zarejestrować PINem, którego nie ma w bazie, to normalnie się dopisuje jego PIN i stan konta do notatnika i wzrasta liczba w pliku z ilością klientów, natomiast jeśli klient chce się zarejestrować PINem, który już jest w bazie to też normalnie się rejestruje, tylko, że już nie wzrasta liczba klientów w pliku tekstowym.
void Bankomat::proces_rejestracji(int PIN)
{
fstream plik;
plik.open("klienci.txt", ios::out | ios::app);
if(plik.good() == false)
{
system("cls");
cout << "Blad polaczenia z baza danych!";
Sleep(2000);
}
else
{
wczytaj_ilosc_klientow();
string linia;
int nr_linii = 1;
int licznik = 0;
int *PINy = new int[ilosc_klientow];
while(getline(plik, linia))
{
switch(nr_linii)
{
case 1:
{
PINy[licznik] = atoi(linia.c_str());
licznik++;
break;
}
}
if(nr_linii == 2)
{
nr_linii = 0;
}
nr_linii++;
}
int licznik_klientow = 0;
for(int i = 0; i < ilosc_klientow; i++)
{
if(PIN == PINy[i])
{
cout << endl << endl;
cout << "PIN jest juz zarejestrowany. Podaj inny...";
Sleep(2000);
}
else if(PIN != PINy[i])
{
licznik_klientow++;
}
}
cout << PINy[0];
system("pause");
if(licznik_klientow == ilosc_klientow)
{
plik.clear();
plik.seekp(0,ios::end);
plik << PIN << endl;
int Stan_konta = 0;
plik << Stan_konta << endl;
cout << "Konto zostalo utworzone. Dziekujemy!";
ilosc_klientow++;
Sleep(2000);
zapisz_ilosc_klientow();
}
plik.close();
plik.clear();
delete[] PINy;
}
}