Leçon 54 : Arguments en ligne de commande (argc, argv)
Les programmes en C ont souvent besoin d'accepter des paramètres directement de l'utilisateur lors de l'exécution dans le terminal. Ceux-ci sont appelés arguments en ligne de commande.
La signature spéciale de main
Pour accéder à ces arguments, main doit être déclarée avec deux paramètres spécifiques :
c int main(int argc, char *argv[]) { // ... code ... }
1. argc (Argument Count)
Un entier représentant le nombre total d'arguments passés au programme, y compris le nom du programme lui-même.
2. argv (Argument Vector)
Un tableau de pointeurs vers des chaînes de caractères. Chaque pointeur de chaîne contient un argument de la ligne de commande.
argv[0]est toujours le nom ou le chemin de l'exécutable.argv[1]est le premier argument fourni par l'utilisateur.- ... jusqu'à
argv[argc - 1].
Exemple d'utilisation
Supposons que le programme soit compilé sous le nom app et exécuté ainsi : ./app fichier.txt 100
c int main(int argc, char *argv[]) { printf("Nombre total d'arguments : %d\n", argc); // 3
if (argc < 3) {
printf("Usage : %s <nom_fichier> <nombre>\n", argv[0]);
return 1;
}
printf("Argument 1 (Fichier) : %s\n", argv[1]); // fichier.txt
printf("Argument 2 (Nombre sous forme de chaîne) : %s\n", argv[2]); // 100
// Pour utiliser argv[2] comme entier, vous devez le convertir :
int num = atoi(argv[2]); // nécessite <stdlib.h>
printf("Argument 2 (Nombre sous forme d'entier) : %d\n", num);
return 0;
}