Teorii trochę za wami, czas pokodować.
Spróbujemy napisać prosty mechanizm wpisywania hasła - Hasło jest ustalone z góry, mamy trzy próby wpisania.
Na razie nie jesteśmy w stanie tego zrobić.
Potrzebne nagłówki:
iostream (wejście - wyjście)
windows.h (trzeba sobie beepnąć, czyż nie?)
string (nasz string)
Do beepnięcia potwierdzającego użyjemy funkcji Beep(2000, 20);, gdzie pierwszy argument to częstotliwość, drugi to długość trwania pipnięcia (1s = 1000)
Do beepnięcia przeczącego użyjemy Beep(2500, 50);
Na szybkiego wejście:
cin >> zmienna;, Umożliwia zapisanie tego, co piszemy na klawiaturze w zmiennej.
Chcemy, by powtarzał się. Co można użyć? Pętle!
istnieją trzy pętle
for(inicjalizacja; warunek trwania; zmiana wartości zmiennej);
przykład:
for(int i = 0; i < 5; ++i) cout << i;
while(warunek trwania);
przykład:
while(true) { cout << "lol"; Beep(2000, 20); }
do ... while(warunek trwania)
przykład:
do cout << 5; while(true);
Wracając do programu; Naszą zmienną przechowującą wpisywane hasło będzie string UserPassword;
stałą przechowującą nasze hasło będzie const string OurPassword = "kaszanka";
Warunek też się przyda: if(warunek) instrukcje; /*opcjonalne*/ else inne_instrukcje;
W int Counter = 3; będziemy przechowywać próby wprowadzenia hasła.
Jeszcze słówko o ++ i -- : Jest to inkrementacja i dekrementacja. Poźniej omówimy to szczegółowo, po prostu dodaje lub odejmuje jedynke.
Break, continue - Pierwsze łamie pętle, drugie przeskakuje do następnego "obrotu pętli".
Cały dzisiejszy kod wygląda tak:
#include
#include
#include
using namespace std;
int main()
{
const string OurPassword = "kaszanka";
string UserPassword;
cout << "Podaj haslo:\n";
int counter = 3;
do {
cin >> UserPassword;
if(UserPassword==OurPassword)
{
Beep(2000, 20);
break;
}
else
{
cout << "Bledne haslo!\n";
--counter;
Beep(2500, 50);
}
} while(counter != 0);
if(counter == 0) cout << "BLOKADA WPISYWANIA.\n";
else cout << "Poprawne haslo!\n";
system("pause");
return 0;
}