Witam,
Chce za pomocą fgets sprawdzać co zostało wpisane z klawiatury i następnie, jeśli zostało poprawnie wpisane ( w tym wypadku chodzi mi o liczby) rzutowanie na inta. Wymyśliłem sobie, że będę wczytywał kolejne znaki, od końca tablicy, do której zostały zapisane przez fgets i rzutował je na int z odpowiednim mnożnikiem, czyli:
#include <stdio.h>
int main(){
printf("Podaj liczbe\n");
char tab[20];
fgets(tab, 20, stdin);
int dlugosc;
for(int i = 0; i < 20; i++){
if(tab[i] == '\0'){
dlugosc = (i - 2);
break;
}
}
int liczba = 0;
int mnoznik = 1;
for(int i = dlugosc; i >= 0; i--){
if(tab[i] >= 48 && tab[i] <= 57){
liczba += ((int)tab[i] - 48) * mnoznik;
mnoznik *= 10;
}
else{
printf("Nie poprawne dane!\n");
return 0;
}
}
printf("%d\n",liczba);
}
Czy jest jakiś wygodniejszy/prostyszy sposób? Ewentualnie jakaś wygodniejsza metoda? Oprócz scanf.