infoR_96
(infoR_96)
9 Luty 2010 15:00
#1
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!
nr47
(Sawyer47)
9 Luty 2010 15:05
#2
Jakby to powiedzieć… u mnie działa. Żadnego błędu nie dostrzegam – od strony kodu jest dobrze.
Quentin
(Quentin)
9 Luty 2010 15:15
#3
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ć).
infoR_96
(infoR_96)
9 Luty 2010 15:25
#4
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
_alex
([alex])
9 Luty 2010 15:30
#5
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.
infoR_96
(infoR_96)
9 Luty 2010 15:52
#6
OK, teraz jest już dobrze, wielkie dzięki, a i jeszcze jedno: nie wiecie jak zrobić polskie znaki? Bo zamiast ł mam | …