Jak sprawdzić czy wprowadzono 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ę ??

:slight_smile:

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.

:slight_smile: :slight_smile:

jednak nie działa :frowning: :frowning: 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.

1 polubienie