Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
968 connectés 

  FORUM HardWare.fr
  Programmation
  C

  arguments dans programme C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

arguments dans programme C

n°2239841
gg5555
Posté le 08-10-2014 à 17:34:16  profilanswer
 

Bonjour,
 
Je suis nouvelle utilisatrice du langage c.
Je voudrais inclure des arguments dans mon script c, j'ai donc inclu cette partie au début de mon script:
 
int main(int argc, char **argv)
{
    if(argc < 3)
    {
         fprintf(stderr, "Give 2 args!\n" );
         exit(-1);
    }
 
    char *arg1 = argv[1];
    char *arg2 = argv[2];
 
    fprintf(stdout, "You gave: %s, %s\n", arg1, arg2);
 
 
Je veux ensuite ouvrir arg1 et arg2 plus loin dans mon script avec ces commandes:
char prefixout[150]={arg1};
ncidin=ncopen("arg2",NC_NOWRITE);
 
Sachant que arg1 et arg2 correspondent à des noms de fichiers de type "toto.nc "
Mais ça ne marche pas, mes arguments arg1 et arg2 ne sont pas pris en compte
 
Merci pour votre aide

mood
Publicité
Posté le 08-10-2014 à 17:34:16  profilanswer
 

n°2240398
Sve@r
Posté le 15-10-2014 à 18:44:23  profilanswer
 

Bonjour
 
Une chaine c'est un tableau de caractères. Or la copie d'un tel tableau se fait caractère par caractère. Toutefois ça a déjà été programmé dans la fonction strcpy
Donc

Code :
  1. char prefixout[150];
  2. strcpy(prefixout, arg1);


 
Quant à ta seconde instruction, arg2 est une variable qui contient une chaine. Donc tu l'appeles directement dans ta fonction, celle-ci traitera bien la chaine contenue.

Code :
  1. ncidin=ncopen(arg2, NC_NOWRITE);


Mais sans mettre de quotes sinon ça signifie que tu appelles la chaine "arg1" et non la variable "arg1".
 
Ceci dit, je me suis toujours demandé pourquoi les programmeurs qui ont déjà une variable contenant ce qu'ils veulent se croient obligé de la transférer dans une seconde (voire une troisième dans ton cas). Pour simplfier, à quoi te servent arg1 et arg2 qui sont identique à argv[1] et argv[2] (et aussi prefixout qui reçoit en plus une copie de arg1) ???


Message édité par Sve@r le 15-10-2014 à 18:45:55

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  arguments dans programme C

 

Sujets relatifs
C++ Gamebuino / Arduino / Débutant[Débutant C++] Classes simples
C++11 éclaircissement sur la gestion de la mémoire[TC] Turbo-C et Win7.
Optimiser un programme Matlabprogramme simple avec fautes
Déterminer si un programme s'arrête ou non ?Probleme exo simple en C
C++ : Ajouter une ligne à un fichier txt Par défaut C++ : appeler un .exe depuis le code
Plus de sujets relatifs à : arguments dans programme C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR