Geek tričko zdarma Geek tričko zdarma
Tričko zdarma! Stačí před dobitím bodů použít kód TRIKO15. Více informací zde

Diskuze: výjimka v c++

Aktivity (2)
Avatar
Jakub Málek
Člen
Avatar
Jakub Málek:6.11.2018 19:28

Zdravím, nevím ani jak problém pojmenovat tudíž nevím jak ho najít někde na netu.
Můj problém je že mám proměnou " ina a;" a dále příkaz cin << a;. Při zadání nějakého neplatného formátu např. písmena, slova nebo tak, tak se program kousne a nebo zacyklí. Nevím jak tuto výjimku ošetřit. Prosím o radu.

Zkusil jsem:

int a;
try {
        cin >> a;
}
catch (exception e) {
        cout << "text";
}

Chci docílit: Nastavení výjimky

 
Odpovědět 6.11.2018 19:28
Avatar
DarkCoder
Člen
Avatar
Odpovídá na Jakub Málek
DarkCoder:6.11.2018 22:05

Ošetřit vstup můžeš i jinak, za pomocí cin.fail().
Následující úryvek kódu ukazuje jeho činnost spolu s vynucením zadání správného vstupu.

do {
        cin >> num;
        if (cin.fail()) {
                cout << "Error" << endl;
                cin.clear();
                cin.ignore(numeric_limits<streamsize>::max(), '\n');
                continue;
        }
        break;
} while (true);
Nahoru Odpovědět 6.11.2018 22:05
"„Učíš-li se proto, aby sis zapamatoval, zapomeneš. Učíš-li se proto, abys porozuměl, zapamatuješ si."
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na Jakub Málek
patrik.valkovic:6.11.2018 22:28

V sekci C++ jsou nové popsané proudy a jak s nimi pracovat. Doporučuji si to pročíst.

Nahoru Odpovědět 6.11.2018 22:28
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.