Cin.fail() w C++ Builder

Odpowiedz Nowy wątek
2011-08-04 12:03
0

Witam!

Pisząc program konsolowy, dla wczytywania danych (cin) istnieje funkcja cin.fail(), dzięki której możemy wyświetlić komunikat o błędzie:

if(cin.fail())
{
cout << "blad";
}

Mam pytanie dotyczące programu okienkowego w C++ Builder 6. Chcę, aby program sprawdził poprawność danych wpisywanych do Edit1. Użytkownik powinien wpisać tam dowolną liczbę double. Jeśli będzie to string(np 123abc456), program powinien wyrzucić błąd, np MessageBox. Czy istnieje prostszy sposób na wychwycenie błędu, niż zczytywanie kolejnych znaków wpisanego tekstu(tekst[0] == cyfra, tekst[1] == cyfra itd)?

Występujący błąd to: Could not convert variant of type (String) into type (Double).

Z góry dziękuję za pomoc.

Pozostało 580 znaków

2011-08-04 12:17
0

@edit
przepraszam za pomyłkę, niedoczytałem do końca posta.

edytowany 1x, ostatnio: piternet, 2011-08-04 12:22
"Mam pytanie dotyczące programu okienkowego w C++ Builder 6"... - Shalom 2011-08-04 12:17

Pozostało 580 znaków

2011-08-04 12:20
0

Zawsze można zrobić tak:

istringstream iss(string_z_zawartoscia_edita);
double zmienna;
iss >> zmienna;
if(iss.fail())
{
    //error
}

ale zapewne jest prostszy sposób - nie znam Buildera.


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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