IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

utilisation de argv


Sujet :

C

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut utilisation de argv
    bonsoir à tous
    je voudrais savoir svp comment faire pour passer le nom du programme en paramètre avec argv , cad argv[0] ne prendra pas par defaut le nom du programme mais sera plutot passé en paramètre comme on fait pour l'initialisation de argv[1] etc..
    merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ben_tiba_asma Voir le message
    bonsoir à tous
    je voudrais savoir svp comment faire pour passer le nom du programme en paramètre avec argv , cad argv[0] ne prendra pas par defaut le nom du programme mais sera plutot passé en paramètre comme on fait pour l'initialisation de argv[1] etc..
    merci d'avance
    Salut

    Tu peux pas. argv[0] contient le nom du programme tel que tu le lances. c.a.d. que si tu lances "/toto/titi/tata/monProg", alors argv[0] contiendra la chaine complète "/toto/titi/tata/monProg".

    Peut-être que tu peux ensuite tenter un strcpy("autre_chose", argv[0]) ou même modifier directement le pointeur en le connectant vers une chaine statique => argv[0]="autre_chose" mais je ne suis pas certain que le comportement soit garanti...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    bonjour
    merci pour la réponse moi aussi je me doutais de la possibilité de le faire, on me l'avait demandé et je voulais m'assurer que c'etait impossible.
    merci encore une fois et bonne journée ;-)

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    bonsoir,
    je me suis trompée désolée, j'avais mal saisi le travail demandé
    c'etait plutôt pouvoir passer le nom d'un fichier généré en paramètre egalement
    pour mieux expliquer voilà mon code, il génère un fichier dont le nombre de lignes est passé en paramètre , il écrit le n° de chaque ligne avec le chiffre 1 devant .maintenant au lieu de le nommer "perf" je voudrais passer le nom en paramètre j'ai fait quelques essais mais ça n'a rien donné
    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  <stdio.h>
    #include <stdlib.h>
    int main(int argc, char*argv[]) {
    int      nb_machines = atoi (argv[1]);
    int      nb_ligne;
     
    FILE   *fd;
     
    srand(time(NULL));
    fd = fopen("perf", "w");
    for (nb_ligne = 0; nb_ligne < nb_machines; ++nb_ligne)
    {
        fprintf(fd, "%d\t  1",nb_ligne+1);
        fprintf(fd, "\n");
    }
     
    }
    merci d'avance

  5. #5
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ben_tiba_asma Voir le message
    bonsoir,
    je me suis trompée désolée, j'avais mal saisi le travail demandé
    c'etait plutôt pouvoir passer le nom d'un fichier généré en paramètre egalement
    pour mieux expliquer voilà mon code, il génère un fichier dont le nombre de lignes est passé en paramètre , il écrit le n° de chaque ligne avec le chiffre 1 devant .maintenant au lieu de le nommer "perf" je voudrais passer le nom en paramètre j'ai fait quelques essais mais ça n'a rien donné
    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  <stdio.h>
    #include <stdlib.h>
    int main(int argc, char*argv[]) {
    int      nb_machines = atoi (argv[1]);
    int      nb_ligne;
     
    FILE   *fd;
     
    srand(time(NULL));
    fd = fopen("perf", "w");
    for (nb_ligne = 0; nb_ligne < nb_machines; ++nb_ligne)
    {
        fprintf(fd, "%d\t  1",nb_ligne+1);
        fprintf(fd, "\n");
    }
     
    }
    merci d'avance
    Attends !!! Tu arrives à passer à ton programme le nombre de lignes, et à le récupérer... et tu n'arrives pas à lui passer un nom de fichier et à le récupérer ???
    Quelle différence y a-t-il entre un nombre de lignes et un nom de fichier ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    oui ça fait des années que j'ai pas programmé donc me faudra du temps pr m'en souvenir, je me rappelle plus s'il fallait passer une chaîne de caractère string ou char ou sous forme de tableau

  7. #7
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 685
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 685
    Points : 30 974
    Points
    30 974
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ben_tiba_asma Voir le message
    oui ça fait des années que j'ai pas programmé donc me faudra du temps pr m'en souvenir, je me rappelle plus s'il fallait passer une chaîne de caractère string ou char ou sous forme de tableau
    Faut pas confondre "ce que tu passes" et "là où tu le stockes" !!!
    Ce que tu passes, que ce soit un nombre ou un nom, c'est avant tout une chaine. Et cette chaine arrive dans argv[n] qui est un pointeur vers une chaine de caractères (n représentant le rang dans la ligne de commandes)

    Code c : 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
    #include  <stdio.h>
    #include <stdlib.h>
    int main(int argc, char*argv[]) {
        int      nb_machines = atoi (argv[1]);
        int      nb_ligne;
     
        FILE   *fd;
     
        srand(time(NULL));
        fd = fopen(argv[2], "w");
        for (nb_ligne = 0; nb_ligne < nb_machines; ++nb_ligne)
        {
            fprintf(fd, "%d\t  1",nb_ligne+1);
            fprintf(fd, "\n");
        }
    }
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Enseignant Chercheur
    Inscrit en
    Septembre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2011
    Messages : 60
    Points : 25
    Points
    25
    Par défaut
    merci infiniment c'etait aussi simple que ça la honte!!!
    merci en tout cas c'est très gentil de ta part

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. utilisation de argv[]
    Par da_latifa dans le forum Débuter
    Réponses: 4
    Dernier message: 27/10/2014, 14h09
  2. Utilisation de argv[]
    Par bouritosse dans le forum C
    Réponses: 3
    Dernier message: 15/11/2013, 11h37
  3. C/C++ : utiliser argv sous windows ?
    Par dmichel dans le forum Windows
    Réponses: 4
    Dernier message: 01/03/2007, 13h57
  4. Réponses: 2
    Dernier message: 20/03/2002, 23h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo