Controle de saisie
Résolu
naruto2333
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
naruto2333 Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
naruto2333 Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
bonjour tout le monde,
je voudrai juste vous poser une question sur les controles de saisie.
Par exemple je voudrais demander à un utilisateur de saisir 5 nombre entiers.
Et lorsque l'utilisateur saisie un nombre décimal(10,55) ou une chaine de caractères(uei) je voudrai que mon programme lui envoi un message d'erreur et lui redemande de saisir le nombre erroné.
Pouvez-vous m'aider à compléter les condition du "while" et du "if" svp? En fait c juste comment tester la saisie n'est pa un caractere ou un nombre decimal. je pense meme ke le %d est faux puisque je ne veux pa de decimal mais je ne sai pa comment on fait pour un entier.
merci d'avnce.
je voudrai juste vous poser une question sur les controles de saisie.
Par exemple je voudrais demander à un utilisateur de saisir 5 nombre entiers.
Et lorsque l'utilisateur saisie un nombre décimal(10,55) ou une chaine de caractères(uei) je voudrai que mon programme lui envoi un message d'erreur et lui redemande de saisir le nombre erroné.
Pouvez-vous m'aider à compléter les condition du "while" et du "if" svp? En fait c juste comment tester la saisie n'est pa un caractere ou un nombre decimal. je pense meme ke le %d est faux puisque je ne veux pa de decimal mais je ne sai pa comment on fait pour un entier.
merci d'avnce.
A voir également:
- Controle de saisie
- Saisie gestuelle iphone - Guide
- Saisie vocale whatsapp - Accueil - Messagerie instantanée
- Saisie vocale sms - Guide
- Gboard saisie vocale - Accueil - Applications & Logiciels
- Fan controle - Télécharger - Optimisation
3 réponses
Bonjour,
Il faut passer par fgets() et convertir via strtol().
Si tu as des soucis d'utilisation, n'hésite pas.
Cdlt,
Il faut passer par fgets() et convertir via strtol().
Si tu as des soucis d'utilisation, n'hésite pas.
Cdlt,
Je t'ai fait un exemple.
Tu peux le peaufiner en créant des fonctions, etc.
Pour plus de précisions sur la fonction strtol(), je te conseille le man.
Tu peux le peaufiner en créant des fonctions, etc.
#include <stdio.h> #include <stdlib.h> int main(void) { char *ptr; long val; char buffer[15]; printf("ecrire nombre : "); if(fgets(buffer, sizeof buffer, stdin) != NULL) { char *p=strchr(buffer,'\n'); if (p != NULL) *p='\0'; } else { fputs("erreur\n",stderr); return EXIT_FAILURE; } val = strtol(buffer, &ptr, 10); if (ptr != NULL && *ptr == '\0') printf("nb=%ld\n", val); return 0; }
Pour plus de précisions sur la fonction strtol(), je te conseille le man.