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

Logowanie za pomocą loginu i hasla z pliku.txt

Object Storage Arubacloud
0 głosów
514 wizyt
pytanie zadane 15 września 2018 w C i C++ przez Zimny. Nowicjusz (140 p.)

Cześć, jestem po 7 odcinku Pana Mirosława. Zapisywanie loginu i hasła działa elegancko, lecz nie mam pojęcia jak zrobić logowanie z danych zapisanych w tym pliku. 

#include <iostream>
#include <fstream>
#include <windows.h>
#include <cstdlib>
#include <stdio.h>
#include <conio.h>
using namespace std;
string NewUserLogin, NewUserPassword, ConfirmNewUserPassword, UserLogin, UserPassword, SECOND;
int main()
{
string MAIN;
start:
{


    cout << "Czesc, aby rozpoczac prace musisz sie zalogowac" << endl;
    cout << "Jezeli nie posiadasz konta wpisz REJESTRACJA" << endl;
    cout << "Jezeli posiadasz konto wpisz LOGOWANIE" << endl;
    cout << "Wybor:";
    cin >> MAIN;
}

if(MAIN=="rejestracja"|| MAIN=="Rejestracja" || MAIN=="REJESTRACJA");
rejestracja:
{
        cout << endl;
        cout << "Wpisz swoj login:";
        cin >> NewUserLogin;
        cout << "Wpisz swoje haslo:";
        cin >> NewUserPassword;
        cout << "Powtorz swoje haslo:";
        cin >> ConfirmNewUserPassword;
        while(NewUserPassword!=ConfirmNewUserPassword)
        {
            cout << "Hasla nie sa takie same!" << endl;
            cout << endl;
            cout << "Nowe haslo:";
            cin >> NewUserPassword;
            cout << "Powtorz haslo:";
            cin >> ConfirmNewUserPassword;
        }
        while(NewUserPassword==ConfirmNewUserPassword)
        {
            fstream users;
            users.open("baza.txt", ios::out | ios::app);
             users<<NewUserLogin<<endl;
             users<<NewUserPassword<<endl;
             users.close();


            system("cls");
            cout << "Rejestracja dla uzytkownika "<< NewUserLogin<< " przebiegla pomyslnie." << endl;
            cout << "" << endl;
            cout << "Nastepuje przekierowanie do logowania" << endl;
            Sleep(3000);
        for(int i=5; i>=0 ; i--)
        {
            system("cls");
            Sleep(100);
            cout << "PRZEKIEROWANIE ZAKONCZONE!" << endl;
            cout << endl;
        }
        goto logowanie;
        }
}
if(MAIN=="logowanie"|| MAIN=="Logowanie" || MAIN=="LOGOWANIE")
logowanie:
{
    
    cout << endl;
    cout << "Login:";
    cin >> UserLogin;
    cout << "Haslo:";
    cin >> UserPassword;
    while(UserLogin!=NewUserLogin || UserPassword!=NewUserPassword)
    {
        cout << "Zly login lub haslo." << endl;
        cout << "Sprobuj ponownie;" << endl;
        cout << "Login:";
        cin >> UserLogin;
        cout << "Haslo:";
        cin >> UserPassword;
        cout << endl;
        cout << "Jezeli nie masz konta, wpisz rejestracja." << endl;
        cout << "Jezeli chcesz sprobowac ponownie, nacisnij dowolna litere." << endl;
        cout << "Wybor:";
        cin >> SECOND;

        if(SECOND=="rejestracja"|| SECOND=="Rejestracja" || SECOND=="REJESTRACJA") goto rejestracja;
        else
        {
            goto logowanie;
        }
    }
        system("cls");
        cout << "Witaj "<< UserLogin << endl;
        cout << "Nastepuje przekierowanie do menu glownego." << endl;
        Sleep(5000);
        for(int i=5; i>=0 ; i--)
        {
            system("cls");
            Sleep(100);
            cout << "PRZEKIEROWANIE ZAKONCZONE!" << endl;
            cout << endl;
        }
        goto menu;


}

char choice;
menu:
{
    Sleep(1000);
    system("cls");
    cout << "_______MENU GLOWNE_______" << endl;
    cout << "1. Kalkulator"<< endl;
    cout << "2. xxxx"<< endl;
    cout << "3. xxxxx"<< endl;
    cout << "4. xxxxxx"<< endl;
    cout << "5. Wyjscie" << endl;
    choice=getch();
    switch(choice)
    {
    case '1':
        {
          cout << "Wybrales kalkulator" << endl;
        goto kalkulator;
        }
    break;

    case '2':
        {
            cout << "FUNKCJA W BUDOWIE." << endl;

        }
    break;

    case '3':
        {
            cout << "FUNKCJA W BUDOWIE." << endl;
        }
    break;

    case '4':
        {
            cout << "FUNKCJA W BUDOWIE." << endl;
        }
    break;
    case '5':
            {
                exit(0);
            }

    default: cout << "Nie ma takiej opcji." << endl;
    }

}

int x, y, choice2;
kalkulator:


for(;;)
{


        cout << endl;
        cout << "Podaj 1 liczbe: ";
        cin >> x;
        cout << "Podaj 2 liczbe: ";
        cin >> y;
        cout << endl;
        cout << "Teraz wybierz co chcesz zrobic" << endl;
        cout << "1. Dodawanie"<< endl;
        cout << "2. Odejmowanie"<< endl;
        cout << "3. Mnozenie"<< endl;
        cout << "4. Dzielenie"<< endl;
        cout << "5. Wyjscie" << endl;

        cout << "WYBIERZ:";
        cin >> choice2;
        switch(choice2)
    {

        case 1:
            {
                cout<< "________________________________________" << endl;
            cout << "Suma " << x << " i " << y << " = " << x+y << endl;
                cout<< "________________________________________" << endl;
            }
        break;

        case 2:
            {
                cout<< "________________________________________" << endl;
            cout << "Roznica " << x << " i " << y << " = " << x-y <<endl;
                cout<< "________________________________________" << endl;
            }
        break;

        case 3:
            {
                    cout<< "________________________________________" << endl;
                cout << "Iloczyn " << x << " i " << y << " = " << x*y << endl;
                    cout<< "________________________________________" << endl;
            }
        break;

        case 4:
            {
                if (y==0) cout << "Nie dzielimy przez 0!";
                else
                {
                    cout<< "________________________________________" << endl;
                cout << "Iloraz " << x << " i " << y << " = " << x/y << endl;
                cout<< "________________________________________" << endl;
                }
            }
        break;
        case 5:
            {
                exit(0);
            }
        default: cout << "Nie ma takiej opcji.";
        }
        cout << "Nacisnij enter aby kontynuowac." << endl;
        getchar();getchar();
        system("cls");
}






return 0;


}

 

komentarz 15 września 2018 przez niezalogowany
Nigdy nie używaj goto. Zamiast tego używaj pętli i funkcji.
komentarz 15 września 2018 przez Zimny. Nowicjusz (140 p.)
Dlaczego mam tego nie używać? Prosiłbym o bardziej rozwinięta odpowiedz :D
komentarz 16 września 2018 przez niezalogowany
Tworzy nieczytelny i trudny do modyfikacji kod. Używanie goto nie jest zalecane w każdym nowoczesnym języku. Wszystko da się zrobić korzystając z wygodniejszych i bezpieczniejszych mechanizmów.
komentarz 16 września 2018 przez Zimny. Nowicjusz (140 p.)

Od nowa to napisalem. Zapisuje wszystkie loginy i hasla do plikow z podanym loginem i teraz nasuwa mi sie pytanie, czy da się ten kod jeszcze uprościć? 

#include "pch.h"
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
 
 
bool IsLoggedIn()
{
    string UserLogin, UserPassword, login, password;
 
    cout << "Podaj Login: "; cin >> UserLogin;
    cout << "Podaj Haslo: "; cin >> UserPassword;
    ifstream read("C:\\Users\\user\\PROGRAMY\\PROBA\\baza\\" + UserLogin + ".txt");
    getline(read, login);
    getline(read, password);
 
    if (login == UserLogin && password == UserPassword)
    {
        return true;
    }
    else
    {
        return false;
    }
 
 
 
}
int main()
{
    int choice;
 
    cout << "___________START_____________\n";
    cout << "1. Rejestracja\n2. Login\nTwoj Wybor: "; cin >> choice;
   
   
    if (choice == 1)
    {
            string login, password, repassword;
           
            cout << "Wybierz login: "; cin >> login;
            cout << "Wpisz haslo: "; cin >> password;
            cout << "Wpisz ponownie haslo: "; cin >> repassword;
            while (repassword != password)
            {
                cout << endl <<  "Hasla nie zgadzaja sie!\nSprobuj ponownie." << endl << endl;
                cout << "Wpisz haslo: "; cin >> password;
                cout << "Potworz haslo: "; cin >> repassword;
                
            }
            while (repassword == password)
            {
                system("cls");
                cout << "Rejestracja zostala zakonczona!\n Nastepuje przeniesienie do  menu glownego!";
                ofstream file;
                file.open("C:\\Users\\user\\PROGRAMY\\PROBA\\baza\\" + login + ".txt");
                file << login << endl;
                file << password;
                file.close();
                main();
            }
			
    }
    else if (choice == 2)
    {
        bool status = IsLoggedIn();
 
        if (!status)
        {
            cout << "Zly login" << endl;
            system("PAUSE");
            return 1;
 
        }
        else
        {
            cout << "Pomyslne logowanie" << endl;
            system("PAUSE");
            return 1;
        }
 
    }
 
 
        return 0;
 
}

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 313 wizyt
0 głosów
2 odpowiedzi 1,302 wizyt
0 głosów
1 odpowiedź 736 wizyt

92,626 zapytań

141,485 odpowiedzi

319,841 komentarzy

62,007 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!

...