#include <iostream>
int main()
{
std::string haslo = "";
std::string login = "";
bool rightPossword = 0 ;
int x = 0;
while ((rightPossword != true) && (login != "zyx") && (x < 3)) {
std::cout << "Podaj login:";
std::cin >> login;
std::cout << "Podaj haslo:";
std::cin >> haslo;
if (haslo == "xyz" && login == "zyx") {
rightPossword = true;
std::cout << "Dostep przyznany\n";
std::cout << " \n";
}
if (haslo != "xyz" && login != "zyx") {
rightPossword = false;
std::cout << "Dostep nieprzyznany\n";
std::cout << "To byla twoja: " << x +1 << " proba z (3)\n";
}
x++;
}
if (x == 3) {
system("cls");
std::cout << "Nie poprawne haslo, odmowa dostepu\n";
}
}
Jedyne co tu zmienilem to upiekszylem formatowanie dodalem nawiasy + dodalem zmienna bool, ktora powie czy haslo jest prawidlowe czy nie. Nie wiem jak to robisz, ale u mnie wszytsko sie kompiluje i mam 3 proby, czy przy Twoim kodzie, czy jego lekkiej obrobce. Oprocz tego masz funkcje menuglowne, wiec dobrze by bylo pokazac caly kod.
Jeszcze tylko male rady, jezeli masz nazwy zmiennych, ktorych maja wiecej niz jeden trzon skladowy, np. menuglowne, to pisz camelCase, czyli menuGlowne. Lepiej sie to czyta w kodzie. Oprocz tego formatowanie jest masakryczne, czyta sie to zle, brak wciec itd.
haslo!="xyz"&&login!="zyx"&&x<=2
wyglada brzydko jak jest tak zbite, lepiej zrobic odstep miedzy warunkami.
Fajnie, ze przypisales do zmiennej x 0, ale mogles tez do stringow.