Tri des caractere entrer par l'utilisateur
yves_boris
-
KX Messages postés 19031 Statut Modérateur -
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
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:
- Tri des caractere entrer par l'utilisateur
- Caractère spéciaux - Guide
- Comment faire un tri personnalisé sur excel - Guide
- Rechercher ou entrer l'adresse - Guide
- Caractere speciaux - Guide
- Entrer les informations d'identification reseau - Guide
1 réponse
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 :
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;
}