Arguments en c++?????

j'ai pas pigé a quoi ça sert et quand on les place ou quand on les places,...
merci de m'aider.

6 réponses

  1. c'est pas bien sorcier.

    Exemple :

    quand tu veux écrire un fichier sous Linux par ex, avec vim (éditeur de text) et bien pour ouvrir un fichier tu lance la cmd :

    vim mon_fichier.txt

    vim, c'est le nom du programme donc argv[0]
    mon_fichier.txt, c'est l'argument que l'on passe à vim pour qu'il puisse ouvrir le fichier voule et c'est argv[1].

    ce qui fait que argc=2;
    => l'argument "0" argv[0] "le nom du prog"
    => l'argument "1" argv[1] "le paramètre que tu file à ton prog"

    voici un petit code :
    ----------------------------------------------

    #include <stdio.h>

    int main(int argc, char **argv){
    // argc c'est un entier qui va servir à compter le nombre de
    // paramètres que tu passe à ton prog
    // argv est un pointeur de pointeur tu peut aussi le noter de la
    // façon suivante "char argv[][]". En réalité ça représentera
    // un tableau à deux dimension qui contiendra les paramètres les
    // uns à la suites des autres. Comme on ne peut pas savoir
    // d'avance la longueur des arguments et le nombre, c'est
    // pourquoi on utilise les pointeurs de pointeurs.

    int i;

    printf("\nnombre d'arguments : %d", argc);
    printf("\nnom du programme : %s\n", argv[0]);

    for(i=1 ; i<argc ; i++){
    printf("argument %d : %s\n", i, argv[i]);
    }

    return 0;
    }

    ---------------------------------
    execution du programme nomée prog1.exe :

    prog1.exe bonjours comment ca va

    nombre d'arguments : 5
    nom du programme : prog1.exe
    argument 1 : bonjours
    argument 2 : comment
    argument 3 : ca
    argument 4 : va

    -----------------------------------------------
    donc en comptant le nom du programme comme argument 0, on a bien 5 arguments.
    J'espère que ça t'aura aidé.
    Bonne chance et mail moi si tu as des questions.

    josch83
    schmidt.joachim.devel@bluewin.ch
    0
    1. je croais que au debut je me suis tromper, je voualsi demander a quoi sert les paramètre. Mais si tu en a le courage, j'aimerais que tu m'explique quand même les arguments lol
      0
      1. le truc que je compren pas c'est aussi pq tu as un* c'est le signe d'un pointeur ??Si tu voudrais me montrer une demonstration d'un programme sans les "abréviation argc argv peut-être que je comprendrai mieux.

        Mais tu m'as toujours pas dis, où est-ce que l'on place?

        Merci pour ta patience.
        0
        1. main( int argc, char *argv[] )

          sinifie que le main recoit un certains nombre (=argc) d'arguments (=argv)

          donc les arguments sont argv[0] (niombre du programme lui même

          argv[1] = 1er argument

          ...

          argv[argc-1] = dernier argument

          par exemple si ton prog s'appelele toto.exe

          et que sous DOS tu tapes toto.exe titi tata tutu

          alors dans le main:

          argc=4
          argv[0] => "toto.exe"
          ...
          argv[3] => tutu

          ATTENTION argv[i] plante sauvagement pour i<0 ou i>=argc (oui >= et pas > cmme l'erreur classique des débutants ...)
          0
          1. va falloir que je relise une fois car je pige pas ton code
            0
            1. hallu,

              Si tu parles des arguments passés à ton programme.

              tu as :

              main( int argc, char *argv[] )
              {
              // code
              fopen(argv[1],"r");
              // read
              // etc ...
              }

              --> prog.exe

              prog.exe D:/chemin/fic_conf.ini

              Tu peux ainsi passer un fichier en argument que tu peux nommer comme tu veux et le placer où tu veux sur ta machine sans pour autant recompiler ton programme, c'est beaucoup plus souple non ???
              0