Disposition de la méthode de saisie des valeurs numériques uniquement à l'aide de scanf () en code C.
Référence http://f4.aaacafe.ne.jp/~pointc/log460.html
Référence http://www9.plala.or.jp/sgwr-t/lib/sscanf.html
Valeur de retour Cela peut être 0. Par exemple, si "A" est spécifié pour str et "% d" est spécifié pour la spécification de format, aucune entrée n'est effectuée et 0 est renvoyé.
Lorsque la valeur de retour est supérieure à 0, évaluez-la comme une valeur numérique.
http://ideone.com/3dx63s
#include <stdio.h>
int inputNumericValue() {
int val;
char buf[512];
printf("[Veuillez saisir un nombre]\n");
fgets(buf, sizeof(buf), stdin);
if (sscanf(buf, "%d", &val) > 0) {
printf(">> %d\n", val);
} else {
printf(">> ERROR:Ce n'est pas une valeur numérique.\n");
}
}
int main(void) {
inputNumericValue();
inputNumericValue();
inputNumericValue();
return 0;
}
stdin
A
3
1
4
résultat
[Veuillez saisir un nombre]
>> ERROR:Ce n'est pas une valeur numérique.
[Veuillez saisir un nombre]
>> 3
[Veuillez saisir un nombre]
>> 1