• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program logowania

Object Storage Arubacloud
0 głosów
362 wizyt
pytanie zadane 1 kwietnia 2019 w C i C++ przez Jakub Michalik Użytkownik (850 p.)

Moi drodzy!

Mam problem z odczytem plików a mianowicie nie wiem jak zrobić pentlę przy switch(u)

Narazie mam taki kod:

#include <iostream>
#include <fstream>

using namespace std;

int wybor;           //  DO MENU
int identyfikator[2];
string nick[2];
string login[2];
string haslo[2];
string klawiatura_login, klawiatura_haslo, klawiatura_nick;

void rejestracja()
{
	cout << "Zarejestruj sie"<<endl;
	//WPROWADŹ DANE
    cout << "Wprowadz nazwe uzytkownika: ";
    cin >> nick[1];
    cout << "Wprowadz login: ";
    cin >> login[1];
    cout << "Wprowadz haslo: ";
    cin >> haslo[1];

	fstream plik;
    plik.open("dane.txt",ios::out | ios::app);

    plik << nick [1]<< endl;
    plik << login [1]<< endl;
    plik << haslo [1]<< endl;
    plik << identyfikator [1]<< endl;

    plik.close();
}

void logowanie()
{
    cout << "Zaloguj sie" << endl;
    //WPROWADŹ DANE
    cout << "Nazwa uzytkownika: ";
    cin >> klawiatura_nick;
    cout << "Login: ";
    cin >> klawiatura_login;
    cout << "Haslo: ";
    cin >> klawiatura_haslo;
    //POBIERANIE WŁAŚCIWYCH
    string linia;
    int nr_linii=1;

    fstream plik;
    plik.open("dane.txt", ios::in);

    if(plik.good()==false) cout<<"Nie mozna otworzyc pliku!";

    while (getline(plik, linia))
    {
        switch (nr_linii)
        {
                case 1: nick[0]=linia; break;
                case 2: login[0]=linia; break;
                case 3: haslo[0]=linia; break;
                case 4: identyfikator[0]=atoi(linia.c_str());break;
                case 5: nick[1]=linia; break;
                case 6: login[1]=linia; break;
                case 7: haslo[1]=linia; break;
                case 8: identyfikator[1]=atoi(linia.c_str());break;
        }
        nr_linii++;
    }

    plik.close();
    //SPRAWDZANIE
    for(int i=0; i<2; i++)
    {
        if(klawiatura_haslo == haslo[i]&&klawiatura_login == login[i]&&klawiatura_nick == nick[i])
        {
            cout << "Zalogowano pomyslnie";
            cout << identyfikator[0]<<identyfikator[1];
        }
    }

}

int main()
{
    cout << "Menu" << endl;
    cout << "-----------------" << endl;
    cout << "1.Zaloguj sie\n2.Zarejestruj sie\n" << endl;
    cout << "Wybor: ";cin >> wybor;
    if(wybor == 1)
    {
        logowanie();
    }
    else if(wybor == 2)
    {
       rejestracja();
    }

    return 0;
}

 

komentarz 1 kwietnia 2019 przez Jakub Michalik Użytkownik (850 p.)
Żeby nie wypisywać :

nick[0],nick[1],nick[2]...

1 odpowiedź

0 głosów
odpowiedź 2 kwietnia 2019 przez MrMock Bywalec (2,890 p.)
najłatwiej do switcha dać resztę z dzielenia przez 4 a do wyboru numeru tablicy wynik dzielenia przez 4
komentarz 3 kwietnia 2019 przez MsMaciek123 Pasjonat (24,760 p.)
A nie lepiej dać to do pętli for? I wtedy długość pliku dzielisz przez 4 i masz mniej działań
komentarz 6 kwietnia 2019 przez Jakub Michalik Użytkownik (850 p.)

Mógłbyś przesłać ten kawałek kodu bo boje się że znowu coś zepsuję ?

@MrMock,

Podobne pytania

0 głosów
2 odpowiedzi 706 wizyt
pytanie zadane 25 listopada 2018 w PHP przez niezalogowany
0 głosów
1 odpowiedź 197 wizyt
pytanie zadane 18 września 2018 w C i C++ przez Zimny. Nowicjusz (140 p.)
+1 głos
1 odpowiedź 336 wizyt

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...