Jak sprawdzić że wprowadzona zmienna nie jest liczbą?
Ostatnio zmodyfikowano 2010-03-15 13:02
marek Temat założony przez niniejszego użytkownika |
Jak sprawdzić że wprowadzona zmienna nie jest liczbą? » 2010-03-14 13:09:15 |
|
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? |
|
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.
|
|
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. |
|
marek Temat założony przez niniejszego użytkownika |
» 2010-03-14 13:52:09 Dzięki, spróbuję |
|
pekfos |
» 2010-03-14 15:42:57 cin jest głupie. wystarczy że coś źle napiszesz i masz bałagan. Najprościej jest tak: 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; }
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 :) |
|
Elaine |
» 2010-03-14 17:53:18 Najprościej? int foo; cin >> foo; if( !cin ) { cin.clear(); cin.sync(); } else { } |
|
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? |
|
« 1 » 2 |