C++ nie przekazuje wszystkich danych

Witajcie, zapewne mieliście już takie problemy, więc może mi pomożecie?

PO SKOMPILOWANIU I ODPALENIU TEGO PROGRAMU:

#include 

#include 


using namespace std;


int main()

{




    using namespace std;

    string tajny_kod = "Gucio";

    int max_liczba_prob = 5;

    bool poprawny_kod = false;

    for (int i=0; i < max_liczba_prob ; ++i)

    {

        string haslo;

        cout << "Podaj hasło: ";

        cin >> haslo;

        poprawny_kod = (haslo==tajny_kod);

    if (poprawny_kod)

    break;

    }

if (poprawny_kod)

cout << "Witaj w systemie Kado#! \n";

else 

cout << "Error!";


return (0);



    system("PAUSE");


}

I po wpisaniu hasła “Gucio” nie wyskakuje żadna wiadomość, czyli nie wyskakuje:

Witaj w systemie Kado#!

To samo jeśli źle wpiszemy 5 razy hasło to też nie wyskakuje ten error, myślałem, że system (“PAUSE”) temu zaradzi, ale niestety nie :(((.

PROSZĘ SERDECZNIE O POMOC! !!

Jakby to powiedzieć… u mnie działa. Żadnego błędu nie dostrzegam – od strony kodu jest dobrze.

Dzieje się tak ponieważ:

system("pause"); [/code]

dajesz za instrukcją return (a tak BTW to nawias tam, w którym jest to 0, jest niepotrzebny), a więc instrukcja ta (dokładniej: wywołanie funkcji) nigdy się nie wykona - program zawsze wcześniej się zakończy (i nie zdążysz nic zobaczyć).

Ok, teraz jest dobrze, tylko, że po tym komunikacie wyskakuje: Aby kontynuować naciśnij dowolny klawisz…, a ja nie chcę, żeby to wyskakiwało,

p.s. dzięki :slight_smile:

zamiast

system(“pause”);

użyj:

cin.sync();

cin.get();

Oczywiście przed:

return 0;

system(“pause”); - zadziała wyłącznie pod windowsymai, cin.sync(); cin.get(); zadziałają pod każdym systemem.

Nie wspominając już o tym że system(“pause”) odpala dodatkowy proces tylko po to aby na chwile powstrzymać zamknięcie okienka.

OK, teraz jest już dobrze, wielkie dzięki, a i jeszcze jedno: nie wiecie jak zrobić polskie znaki? Bo zamiast ł mam | …

SetConsoleCP