Cześć,
problem mój polega na weryfikacji danych z klawiatury, dokładniej: jak sprawdzić, co zostało kliknięte ?
#include <iostream.h>
#include <stdlib.h>
#include <ctype.h> //may need <ctype.h>
using namespace std;
int main()
{
char number;
do
{
cout << "Podaj cyfre: ";
cin >> number;
if(!isdigit(number))
{
cout << "Not a number " << endl;
}
}while(isdigit(number));
system("pause");
return 0;
}
Powyższy program sprawdza, czy wpisany znak jest cyfrą czy nie. Program działa poprawnie.
Chciałem go lekko zmodyfikować (czyli program miałby przyjmować tylko cyfry 1 lub 2 lub 3, żadnych liter) tak, by można było to sprawdzanie wykorzystać przy instrukcji switch, dokładniej ilustruje to poniższy kawałek kodu:
char s;
do
{
cout << "Wybierz opcje: \n";
cout << "1. Opcja 1 \n";
cout << "2. Opcja 2 \n";
cout << "3. EXIT \n";
cin >> s;
}
while (s != 1 && s != 2 && s != 3 && !isdigit(s));
Ta modyfikacja działała, ale nie do końca, bo nie mogłem wykorzystać w żadnej funkcji tej wybranej wartości z klawiatury s (chyba dlatego że to typ char ??)
Chciałem ten wybór zastosować do:
if (s == 1) cout << "Wybor 1";
else if (s == 2) cout << "Wybor 2";
else exit(1);
Ale w ogóle ten kawałek kodu nie został zauważony przez kompilator (jak wcześniej wspomniałem, dlatego że s to typ char ??)
Podobnie sytuacja ze switch:
switch(s)
{
case 1:
break;
case 2:
break;
case 3;
break;
default:
break;
}
Instrukacja switch nie działa...
Próbowałem rzutować typy oraz konwertować char na int, ale nie poskutkowało. Chodzi o to, żeby wybór, czyli s, mogło być używane do innych operacji (np if (s == 1) instrukcja).
Mam nadzieję że w miarę jasno opisałem problem.
Z góry dzięki za wskazówki.