Błąd w obsłudze plików tekstowych

0

Nie wiem dlaczego podczas logowanie program się wysypuje. Jeszcze nie oprogramowałem sprawdzania podanego pinu przez użytkownika z tym wczytanym z pliku tekstowego, ale samo to, że powinno w obecnej postaci powrócić do menu.

#include <iostream>
#include <windows.h>
#include <conio.h>
#include <fstream>
#include "naglowki.h"
#include <string>

using namespace std;

void zaloguj();
void zarejestruj();

void Uzytkownik::pokaz()
{
    char wybor;

    system("cls");
    cout << "\t" << "Witaj w banku!" << endl;

    cout << "1. Zaloguj" << endl;
    cout << "2. Zarejestruj" << endl << endl;
    cout << "Wybor: ";
    wybor = getch();

    switch(wybor)
    {
    case '1':
        {
        zaloguj();
        break;
        }
    case '2':
        {
        zarejestruj();
        break;
        }
    }
}

void Uzytkownik::zaloguj()
{
    system("cls");
    cout << "\t" << "LOGOWANIE" << endl << endl;
    cout << "Podaj PIN: ";
    cin >> TPIN;

    int ilosc_klientow;
    plik.open("iloscklientow.txt", ios::in);
    if(plik.good() == false)
    {
        system("cls");
        cout << "Blad polaczenia z baza danych!";
        Sleep(2000);
    }

    int nr_linii2 = 1;
    string linia2;

    while(getline(plik, linia2))
    {
        switch(nr_linii2)
        {
        case 1:
            {
                ilosc_klientow = atoi(linia2.c_str());
                break;
            }
        }
    }
    plik.close();

    plik.open("uzytkownicy.txt", ios::in);
    if(plik.good() == false)
    {
        system("cls");
        cout << "Blad polaczenia z baza danych!";
        Sleep(2000);
    }

    int nr_linii = 1;
    string linia;
    int licznik = 1;
    PPIN = new int[ilosc_klientow];

    while(getline(plik, linia))
    {
        switch(nr_linii)
        {
        case 1:
            {
                PPIN[licznik-1] = atoi(linia.c_str());
                licznik++;
                break;
            }
        }
        if (nr_linii == 2)
        {
             nr_linii = 0 ;
        }
        nr_linii++;
    }

    plik.close();

   /* while(true)
    {
        int i = 0;

        if(TPIN == PPIN[i])
        {
            system("cls");
            cout << "Udalo sie zalogowac! Twoj PIN to: " << TPIN;
            getchar();getchar();
            break;
        }
        i++;
    }*/
}

void Uzytkownik::zarejestruj()
{
    static int ilosc_klientow;
    static int licznik = 0;
    licznik++;

    PIN = new int;
    StanKonta = new int;

    system("cls");
    cout << "\t" << "REJESTRACJA" << endl << endl;

    cout << "Podaj PIN: ";
    cin >> PIN[licznik-1];

    StanKontaPoczatkowy = 0;
    StanKonta[licznik-1] = StanKontaPoczatkowy;

    plik.open("uzytkownicy.txt", ios::out | ios::app);
    if (plik.good() == false)
    {
        system("cls");
        cout << "\t" << "Blad polaczenia z baza danych!";
        Sleep(2000);
    }
    else
    {
        plik << PIN[licznik-1];
        plik << endl << StanKonta[licznik-1] << endl;

        plik.close();

        plik.open("iloscklientow.txt", ios::in);
        if(plik.good() == false)
        {
            system("cls");
            cout << "Blad polaczenia z baza danych!";
            Sleep(2000);
        }
        int nr_linii = 1;
        string linia;

        while(getline(plik,linia))
        {
            switch(nr_linii)
            {
            case 1:
                ilosc_klientow = atoi(linia.c_str());
            }
        }

        plik.close();

        plik.open("iloscklientow.txt", ios::out);
        if(plik.good() == false)
        {
            system("cls");
            cout << "Blad polaczenia z baza danych!";
            Sleep(2000);
        }
        else
        {
            ilosc_klientow++;
            plik << ilosc_klientow;
        }
        plik.close();
    }



}
 
0

Skasuj ten kod. Napisz od nowa, tym razem z głową.

  1. BEZ używania COPY PASTE.
  2. Dzieląc kod na sensowne funkcje.
    To co napisałeś nadaje się tylko do
    fire.jpg

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