Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Jak sprawdzić że wprowadzona zmienna nie jest liczbą?

Ostatnio zmodyfikowano 2010-03-15 13:02
Autor Wiadomość
marek
Temat założony przez niniejszego użytkownika
Jak sprawdzić że wprowadzona zmienna nie jest liczbą?
» 2010-03-14 13:09:15
P-15004
malan
» 2010-03-14 13:14:21
Od kiedy to wprowadza się zmienne ? ;p. Chodzi Ci może o: "Jak sprawdzić, czy w zmiennej znajdują się znaki inne niż liczby" ?
Do jakiego typu zmiennej chcesz wczytywać... to coś, co chcesz sprawdzić ?

Przy okazji: rozróżniasz temat wiadomości o jej treści?
P-15005
marek
Temat założony przez niniejszego użytkownika
» 2010-03-14 13:23:13
Wprowadzam liczby. Po wykonaniu "cin>>x;" chciałbym wiedzieć np że nie wcisnąłem omyłkowo klawisza 'w' lub jakiegoś tekstu zamiast liczby.


Rozróżniam treść od tytułu. Przy krótkiej treści tak będzie szybciej.
P-15006
malan
» 2010-03-14 13:36:19
Jeżeli chcesz sprawdzać w trakcie wprowadzania to jako takiej funkcji do tego nie ma - samemu trzeba napisać. Najprościej to by chyba było: string/char + getch() + if + konwersja string/char na int. Zakładam, że x jest zmienną typu np. int.
P-15009
marek
Temat założony przez niniejszego użytkownika
» 2010-03-14 13:52:09
Dzięki, spróbuję
P-15011
pekfos
» 2010-03-14 15:42:57
cin jest głupie. wystarczy że coś źle napiszesz i masz bałagan.
Najprościej jest tak:
C/C++
int conv( string a ) {
    v = 0;
    for( int b = 0; b < a.length(); b++ ) v = v * 10 + a[ b ] - 48;
   
    return v;
}
bool isnum( string t ) {
    for( int a = 0; a < t.length(); a++ ) {
        if( t[ a ] > '0' + 9 || t[ a ] < '0' ) return false;
       
    }
    return true;
}

//wczytywanie
string ab;
getline( cin, ab );
if( isnum( ab ) ) {
    int a = conv( ab );
    //..
} else cout << "to nie liczba";


//edit: ..i najbezpieczniej. jak coś takiego zrobisz to możesz być pewny że
nic się nie zwali :)
P-15015
Elaine
» 2010-03-14 17:53:18
Najprościej?
C/C++
int foo;
cin >> foo;
if( !cin )
{ // wpisano coś, co nie jest liczbą
   
    cin.clear(); // czyścimy flagi błędu strumienia
    cin.sync(); // czyścimy bufor strumienia
}
else
{ // wpisano liczbę
   
}
P-15034
dmx81
» 2010-03-14 23:27:26
czyli ze program sam bedzie wiedzial, ze jesli do zmiennej typu int chcemy wpisac zmienna typu np char, to cin zwroci nam blad/false czy cos tam (ze !cin bedzie true), zgadza sie?
P-15049
« 1 » 2
  Strona 1 z 2 Następna strona