Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: výjimka v c++

Aktivity
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
"I ta nejlepší poučka postrádá na významu, není-li patřičně předána." - DarkCoder
Avatar
Odpovídá na Jakub Málek
Patrik Valkovič: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.