Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[C++]Pierwszy projekt


Rekomendowane odpowiedzi

Opublikowano

Cześć, po nauce Instrukcji warunkowej if;else if;if ,pętli for;while;do...while,pseudolosowaniu,instrukcji switch,zapisu i odczytu z pliku tekstowego.

Wymyśliłem swój projekt który ma na celu rozwinięcie moich "umiejętności" bo "Praktyka czyni mistrza".

Projekt,plan polega na "symulatorze banku".

 

Jest menu z opcjami 1.Zaloguj się/2.Załóż konto/3.Informacje o banku/4.Wyłącz konsole.

To jest ukryta treść, proszę

1.Po wyborze opcji nr 1.@up , powinno się wyświetlić podaj pin;podaj haslo.

To jest ukryta treść, proszę

jeśli nie może odczytać pliku "PIN_HASLA.txt" to wyskakuje błąd, jeżeli PIN i Hasło źle zostały wpisane wyskakuje na 1,5 sec Sleep (1500) informacja że podane hasło lub pin są niepoprawne.Po 3 nieudanych próbach wracamy do menu głównego, PIN i Hasło są wczytywane z "PIN_HASŁA".Kod zamieściłem powyżej kod, w tym momencie się zgubiłem prosił bym nakierowanie mnie na właściwą drogę.Powiedzenie jaki błąd jeszcze popełniłem.I jeżeli ktoś ma jakiś fajny projekt żebym mógł dalej coś pisać w zakresie który też wyżej wymieniłem to prosiłbym :).

Opublikowano

"nie rozumiem po co ci sleep"

Zabezpieczenie przed brute-force'm? Duh!

 

@TOPIC

Nie do końca rozumiem pytania. Kod wygląda poprawnie, wystarczy... zrobić to, co napisałeś, że trzeba zrobić. Pobrać od użytkownika login/hasło do zmiennych, które już masz i z nimi pracowac.

 

@EDIT
Jedyne, czego jeszcze nie masz to "menejdżing" haseł w pliku.

Proponuję każdą parę login/hasło trzymać w JEDNEJ linii, oddzielonych spacją.

Następnie używasz getline aby pobrać jedną linię.

Dzielisz tę linię na dwa stringi (google: c++ string split), spacja w pliku je oddziela.

Porównujesz z wprowadzonymi.

 

Jeśli chcesz dodać parę login/hasło ( opcja Załóż Konto ) dodajesz po prostu linię na końcu pliku.

Ta sygnatura jest pusta.

Opublikowano

Tak to jest mój własny kod, ale jakoś nie potrafię sb. ułożyć tak logicznie tego.

 

Wybieram opcje 1 >> ( Jeśli nie może wczytać bazy danych wyskakuje błąd,po 1,5 sec znika) Poprosić o PIN i HASŁO (Jeżeli hasło lub pin albo to i to zostało źle podane inkrementujemy zmienną 'int proby = 0 ' << Dać to w pętle while | while ( int proby == 3 ) | Gdy wyczerpiemy limit poinformować o tym i wyłączyć konsole exit () ;) >> Pobierać dane

z pliku txt. i tu się gubię że jest

 

  • 1.PIN
  • 2.HASŁO
  • 3.04362
  • 4.asdasd
  • 5.03374
  • 6.dsadsa

i jak to odczytać poprawnie.

 

 

PS. Miło że ludzie pomagają :)

 

@Edit @Up Ma ktoś jakiś poradnik,który dobrze tłumaczy 'string split' ? Szukam ale na yt. jest o C# a na necie ciężej a szczególnie po angielsku to rozgryźć

Opublikowano

Mój pomysł to taki :

Przekonwertować stringa na char* i potem przeczesujesz tego char'a jakąś pętelką , jeżeli podczas jednego wykonania petli nie trafi na spacje to wykonuje pętle kolejny raz a pojedyncza literke dodaje do char*.

Mam nadzieje,że rozumiesz. To moja własna interpretacja split'a.

Opublikowano

To jest ukryta treść, proszę

 

Programowanie ma to do siebie, że nie jest po angielsku, a po C++owsku.

Wybierz sobie taki, który wydaje ci się najłatwiejszy. Być może ten

To jest ukryta treść, proszę

 

@UP
Po co? Uczmy się rozwiązań dla C++, nie C.

Ta sygnatura jest pusta.

Opublikowano

switch(nr_linii)
{
case 1: bd_PIN = linia;break;
case 2: bd_haslo = linia;break;
}

nr_linii++;
break;

 

 

To nie ma sensu.

W tym miejscu dokonaj split'u string linia -> vector<string> linia;

if ( linia[0] == haslo && linia[1] == pin ) { zalogowany: };

Ta sygnatura jest pusta.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...