witam, w jaki sposób sprawdzić czy użytkownik wprowadzić liczbę czy inny znak ?
wczytuję za pomocą scanf("%f", &a);
i teraz jak sprawdzić czy user wpisał liczbę ??
witam, w jaki sposób sprawdzić czy użytkownik wprowadzić liczbę czy inny znak ?
wczytuję za pomocą scanf("%f", &a);
i teraz jak sprawdzić czy user wpisał liczbę ??
A np. coś takiego:
Wczytujesz jako tablicę znaków. Sprawdzasz czy ta tablica zawiera tylko liczby, jeśli tak to konwertujesz do int’a (atoi()).
if(scanf("%f",&a)==1) …
if(scanf("%d%d",&x,&y)==2) …
… tyle ile zmiennych
Liczba nie jest znakiem. O cyfrę pytasz?
Można to zrobić przy użyciu funkcji isdigit, która zwraca 0, jeśli podany w jej argumencie char nie jest cyfrą.
poradziłem już sobie czymś takim:
printf("\nPodaj pierwszą liczbę: "); // wczytanie danych
retVal = scanf("%f", &DANE.a);
while (retVal != 1)
{
while((ch = getchar()) != '\n' && ch != EOF);
printf("Podaj liczbę ponownie:");
retVal = scanf("%f", &DANE.a);
}
no i to chyba działa.
jednak nie działa jeśli wprowadzę taką liczbę np. 658+ to wywala błąd
A może tak?
char c;
cin>>c;
if((int)c>=48 && (int)c<=57) cout<<"Wprowadziles liczbe!";
else cout<<"Wprowadziles cos innego.";
Działa dla liczb jednocyfrowych… Myślę, że poradzisz sobie z przerobieniem.