Bonjour à tous,
J'essaie d'écrire un code qui vérifierai qu'une saisie clavier est bien un nombre (entier ou à virgule donc isdigit ne suffit pas). J'ai écrit cela :
Cela fonctionne pas trop mal sauf que toute chaîne de caractère commençant par un entier est considérée comme valide. ainsi 3.a238 par exemple ne retournera pas d'erreur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #include <stdio.h> #include <string.h> int main (int argc, char** argv) { char chaine[6] = {0}; double len = 0; int test = 0; while(test != 1) { printf("%snombre ? \n",chaine); scanf ("%5[0123456789.]", chaine); len = strlen(chaine); if (len != 0) { printf("%s ça marche\n",chaine); test = 1; } else { printf("erreur veuillez recommencer \n"); scanf ("%*[^\n]"); getchar (); } }
Avez-vous une idée de comment faire (quitte à partir sur un code complètement différent) ?
Merci.
Partager