Prośba o poprawienie błędu i składni programu

0

Witam.Jako że w c++ jestem świeży(chciałem zacząć naukę kilka lat temu, ale z czasem zawsze zostawiałem ją) proszę innych użytkowników o poprawienie błędu w tym programie, i ewentualne zmodyfikowanie go aby miał robić rzecz następującą:
W tym programie chciałbym uzyskać efekt weryfikacji kodu pin.Jeśli zostanie wpisany prawidłowy, program ma działać dalej i wykonywać kod który zapisałbym dalej, a jeśli zły to wyświetlić komunikat o błędzie i poprosić o pin jeszcze raz.Użytkownik przed zamknięciem programu mógłby się pomylić 3 razy.Niżej podaje kod który udało mi się napisać.Wiem, że jest w nim błąd i proszę o poprawienie go, oraz o podanie przykładu co musiałbym zmienić aby ten program działał tak jak napisałem.Jeszcze raz bardzo przepraszam za nieczytelność kodu i błędy, ale dopiero dzisiaj postanowiłem wrócić do c++

#include <iostream>
int main()
{
    int kod;
    int t = 3;
    do
    {
    std::cin >> kod;
    if( kod == 777 )
    std::cout <<"podales wlasciwy kod" << std::endl;
    //dalsza część programu

    else
    std::cout << "Blad, sprobuj ponownie" << std::endl;
    t--;
    } while ( t > 0 );

    std::cout <"Niewlasciwy kod podany 3 razy, zamykam program" << std::endl;
    return 0;
}
 
0

Na oko brakuje ci tylko { i } przy warunkach. No bo skad program ma wiedzieć które instrukcje odnoszą się do if a które do else? C++ to nie python.

1
#include <iostream>
int main()
{
    int kod;
    int t = 3;
    do 
    {
        std::cin >> kod;
        if (kod == 777) 
        {
            std::cout << "podales wlasciwy kod" << std::endl;
            break;
        }
        else
            std::cout << "Blad, sprobuj ponownie" << std::endl;
            
        --t;
    } while (t > 0);

    if (t == 0)
        std::cout << "Niewlasciwy kod podany 3 razy, zamykam program" << std::endl;
    else
        // dzialanie gdy podano dobry kod

    return 0;
}
0

Wszystkim bardzo dziękuję, natomiast mam następny banalny problem.Chciałem zabezpieczyć program przed wczytaniem litery.I zrobiłem coś takiego

#include <iostream>
int main()
{
    int pin;
    int t = 3;
    do
    {

    std::cout <<"Podaj pin" <<std::endl;
    std::cin >> pin;
    if ( std::cin.fail() )
    {
        std::cout <<"Wprowadziles litere, pin nieprawidlowy" <<std::endl;
        std::cin.clear();
        std::cin.sync();
        --t;
    }
    else
    if ( pin == 777 )
    {
        std::cout <<"Pin prawidlowy" <<std::endl;
        break;
    }
    else
    std::cout <<"Pin nieprawidlowy" <<std::endl;
    --t;
    } while ( t > 0);
    if ( pin == 777 )
    {
        std::cout <<"Program dziala dalej" << std::endl;
    }
    else
        std::cout <<"Niewlasciwy kod podany 3 razy, zamykam program" << std::endl;
    return 0;

}
 

Tylko że problem jest taki że w momencie wprowadzenia litery pętla jest wykonywana do końca, a co za tym idzie od zmiennej t jest odejmowana liczba dwukrotnie.Wiem, że w tym przypadku wystarczy tylko usunąć w przypadku wczytania litery dekrementacje, ale tak na siłę gdzie musiałbym umieścić tą dekrementacje, żeby zadziałało? Wiem, że niepotrzebnie robię problem, ale chciałbym wiedzieć na przyszłość, w razie zaistnienia sytuacji gdy nie będzie możliwe rozwiązanie tego jak w tym wypadku

1 użytkowników online, w tym zalogowanych: 0, gości: 1