C> Entrez un nombre> fgets () / sscanf ()

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

Recommended Posts

C> Entrez un nombre> fgets () / sscanf ()
ABC129 Commentaire A, B, C
Notation A1 et nombre 26-aires