Tri des caractere entrer par l'utilisateur

yves_boris -  
KX Messages postés 19031 Statut Modérateur -
urgent

Bonjour,
j'ai ecrit un programme de calculatrice en c mais je n'arrive pas a trouver la fonction qui ne permet qu'a lutilisateur d'entrer uniquement des nombres, car une fois que je rentre un un caractere diff de 0 à 9 le programme se plante.pardonner aider moi c'est tres urgent

A voir également:

1 réponse

KX Messages postés 19031 Statut Modérateur 3 020
 
On ne peut pas contrôler l'utilisateur, si il veut entrer "bonjour" quand on lui demande un nombre, on ne peut pas l'en empêcher...
Par contre, à toi de filtrer la chaîne de caractères en retour pour vérifier que c'est un nombre, et lui demander d'entrer à nouveau la chaîne si elle n'était pas bonne.

Dans ton cas particulier où tu attends un entier, tu peux utiliser strtol :

long int lireNombre(const char* texte)
{
	char nptr[BUFSIZ], *endptr;
	long int res;

	do
	{
		printf("%s",texte);
		scanf("%s",nptr);
		
		res = strtol(nptr,&endptr,0);
	}
	while (endptr[0] != '\0');

	return res;
}

int main()
{
	int i;
	for (i=0; i<5; i++)
	{
		long int n = lireNombre("Entrez un nombre : ");
		printf("Le nombre est : %ld\n\n",n);
	}

	return 0;
}
0