Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rozdzial 16 Zadanie domowe | Zabezpieczenie przed wprowadzeniem złych danych

Ostatnio zmodyfikowano 2017-01-31 17:04
Autor Wiadomość
rambosek
Temat założony przez niniejszego użytkownika
» 2017-01-31 14:30:45
Ok, konkretniej bylo tak:

C/C++
while( !( cin >> x ) )
{
    proba++;
    cout << "Wprowadz poprawna liczbe.\n" << proba << ". Proba ";
    cin.clear();
    cin.sync();
}

a teraz jest tak:

C/C++
cin >> x;

while( !( cin.good() ) )
{
    proba++;
    cout << "Wprowadz poprawna liczbe.\n" << proba << ". Proba ";
    cin.clear();
    cin.sync();
}

Czemu gdy wpiszę literę, wykonuje się ta pętla, ale też wykonuje się dalszy IF który informuje że liczba jest za mała?
P-157164
carlosmay
» 2017-01-31 15:38:47
Po wprowadzeniu złych danych wykonuje się pętla, która sprawdza tylko stan strumienia. W pętli jest on zerowany i strumień przed nastepnym obrotem pętli jest prawidłowy więc program opuszcza pętlę.
Dodaj
cin >> x;
 na końcu pętli, a otrzymasz efekt pierwszego kodu.

Poszukaj jak obsługiwać debugger w twoim środowisku.
Debugger ułatwia znajdowanie błędów w logice kodu.
P-157167
rambosek
Temat założony przez niniejszego użytkownika
» 2017-01-31 17:04:50
dziękuje bardzo za pomoc, już rozumiem jak to działa :)
P-157171
1 « 2 »
Poprzednia strona Strona 2 z 2