next up previous contents index
suivant: Automates finis monter: main précédent: Tableaux de chaînes de   Table des matières   Index


La ligne de commande

Dans sa forme générale, main peut opérer sur la ligne de commande passée à l'interprète de commandes pour faire exécuter le programme. Cette ligne, qui est une chaîne de caractères, comprend toujours le nom de la commande et optionnellement des arguments, tous séparés par des espaces. La ligne de commande est donc représentée comme un tableau de chaînes de caractères, conventionnellement appelé argv, et le nombre d'éléments de ce tableau est argc :


int main(int argc, char *argv[]) { ... }

Le premier élément de ce tableau, argv[0] est toujours le nom du programme, de sorte que argc vaut toujours au moins 1. Les arguments du programme sont argv[1], ..., argv[argc-1]. En outre, argv[argc] est (le pointeur) nul.

Par exemple, le programme qui additionne des entiers peut s'écrire, de la façon suivante, en utilisant la fonction atoi. Cette fonction convertit une chaîne de caractères, qui est la notation d'un entier, en cet entier ; elle est déclarée dans cstdlib (il y a aussi une fonction analogue atof qui retourne un double) :


#include <iostream>
#include <cstdlib>

int main(int argc, char *argv[]) {
  int somme = 0;
  int i;

  for(i=1; i < argc ; i++) {
    somme = somme + atoi(argv[i]);
  }
  cout << somme << endl;
  return 0;
}

Si ce programme source est placé dans un fichier add.C et si on le compile par


unix% g++ -o add add.C

alors, on pourra exécuter


unix% add 12 23 34

et obtenir 69 comme réponse.


next up previous contents index
suivant: Automates finis monter: main précédent: Tableaux de chaînes de   Table des matières   Index
R Lalement