Zabezpieczenie przed wprowadzaniem liczb zmiennoprzecinkowych

0

Witam, chciałbym się dowiedzieć jak zabezpieczyć wprowadzaną liczbę tak, aby użytkownik mógł wprowadzić tylko liczbę całkowitą. Litery udało mi się wyeliminować, lecz nie mogę wykombinować, jak to zrobić dla liczb zmiennoprzecinkowych.

#include <stdio.h>

int main()
{
    int size, index = 0, min, max;
    float sum = 0, avg;

    printf("Podaj wymiar tablicy:\n");
    while(scanf("%d", &size) != 1)
    {
        printf("Wprowadz liczbe!\n");
        while ((size = getchar()) != '\n' && size != EOF);
    }
    int tab[size];

// dalsza część programu

return 0;
}
0
    float f_val;
	scanf("%f", &value);
	int int_val = (int) f_val;
    if (int_val !=f_val)
		// Nie, nie
    // Dalej..
0
lion137 napisał(a):
    float f_val;
	scanf("%f", &value);
	int int_val = (int) f_val;
    if (int_val !=f_val)
		// Nie, nie
    // Dalej..

To rozwiązanie nie pomoże, jeśli wczytana będzie liczba zmiennoprzecinkowa większa niż 2^24.

0

Ano, to co, zwiększyć typy...

0

Wczytaj string, sprawdź czy zawiera same cyfry (ew. leading ± i 0x, jeśli chcesz się w to bawić) i dopiero potem konwertuj.

1 użytkowników online, w tym zalogowanych: 0, gości: 1