Je voudrais tester si l'argument que l'utilisateur ecrit sur la ligne de commande est bien un entier
Je voudrais tester si l'argument que l'utilisateur ecrit sur la ligne de commande est bien un entier
Bonsoir,
C'est simple : il suffit de convertir ta chaîne en entier en utilisant strtol
strtol() prend trois arguments : le premier c'est la chaîne à convertir, le deuxième c'est un pointeur vers un char* qui sert à indiquer le premier caractère de la chaîne qui est "incorrect". Si ce pointeur pointe sur le caractère nul terminal, la chaîne contenait bien un entier. Le troisième argument, c'est la base (10 en général). La fonction retourne le nombre converti.
Exemple :
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 #include <stdlib.h> #include <stdio.h> int main(int argc, char** argv) { if (argc == 2) { char* ptr; long result = strtol(argv[1], &ptr, 10); if (*ptr == '\0') printf("C'est bien un entier: %ld\n", result); else printf("Ce n'est pas un entier.\n"); } return 0; };
Partager