Tri des caractere entrer par l'utilisateur

Fermé
yves_boris - 20 oct. 2011 à 02:08
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 20 oct. 2011 à 10:47
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 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
20 oct. 2011 à 10:47
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