Gdzie jest błąd w tym programiku?

0

Witam.
Rzuci ktoś okiem na ten program?

http://pastebin.com/iFMAup3v

Mam z nim problem. Nie działają wszystkie throwy i catche tak jak powinny. Działa ochrona przed dzieleniem przez 0, działa ochrona przed wpisaniem innego znaku niż wymagane, ale nie działa ochrona przed wpisaniem czegoś innego niż liczba jako operatory. Wie ktoś gdzie jest błąd?

1
if(isdigit(Operand1) || isdigit(Operand2)){}
else
{
   string zlyznak = "Musisz podac liczbe!";
   throw zlyznak;
}

Funkcja isdigit sprawdza czy podany znak jest liczbą, a zmienne Operand1 i Operand2 są typu double, więc to co wpisał użytkownik jest już skonwertowane na double.
Musisz najpierw wczytać dane od użytkownika do stringa, potem sprawdzić, czy podany string jest liczbą a dopiero potem konwertować go na typ double.

0

Hmm. A jak mam to zrobić? Zmienić double na strina, a potem na siłę wpisać (double) za każdym razem przed zmienną gdy będę później chciał jej użyć?

1

Zabezpieczenie przed wpisywaniem liter

wystarczy użyć szukajki

0

Niestety muszę to zabezpieczyć korzystając z obsługi wyjątków

2
try {
    try {
        try {
            // ...

Masakra. Powinien być jeden blok try-catch, przechwytujący odpowiednie wyjątki (a nie stringi).

1 użytkowników online, w tym zalogowanych: 0, gości: 1