Zabezpieczenie strumienia wejściowego
Ostatnio zmodyfikowano 2012-05-02 14:14
rolkarz1 Temat założony przez niniejszego użytkownika |
Zabezpieczenie strumienia wejściowego » 2012-05-02 14:04:18 Witam, piszę projekt w cpp na zaliczenie przedmiotu i chciałbym aby był on w pewnym stopniu odporny na pewnego typu głupoty, typu wprowadzanie złego numeru operacji, lub wpisywanie czegokolwiek. Z liczbami sobie poradziłem. Mając funkcje case dla numerów od 1 do 4 w przypadku podania większej liczby, wyrzuca komunikat i jest w porządku. Lecz gdy wprowadzę znak, lub cały wyraz, program się sypie i muszę przerwać jego pracę. Czy jest na to jakiś prosty sposób? Dziękuję za odpowiedź.
(P.s szukałem ale jest tyyyle postów, że nie mogłem się doszukać) |
|
Unlimited |
» 2012-05-02 14:11:42 do { if( c % 2 == 0 ) { cout << "Zgadnij jaka liczba zostala wylosowana: " << "( " << gracz1 << " ) "; } else { cout << "Zgadnij jaka liczba zostala wylosowana: " << "( " << gracz2 << " ) "; } cin.clear(); cin.sync(); cin >> b; d = cin.good(); } while( d == false || b < 1 || b > 10 ); Tu jest kod z mojej gry 2-osobowej. Zabezpieczam ją przed podaniem liczb mniejszych niż 1, większych od 10 oraz przed podaniem LITERY bądź WYRAZU. Sprawdasz to kodem: jakas_zmienna = cin.good();a następnie dodajesz w warunku while: jakas_zmienna == falseByło to w kursie na tej stronie. Ważne byś w pętli zawsze czyścił flagę błędu i strumień: cin.clear(); cin.sync(); |
|
rolkarz1 Temat założony przez niniejszego użytkownika |
» 2012-05-02 14:14:09 Dzięki wielkie, chyba sobie dam radę :) |
|
« 1 » |