arguments dans programme C - C - Programmation
Marsh Posté le 15-10-2014 à 18:44:23
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 :
|
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 :
|
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) ???
Marsh Posté le 08-10-2014 à 17:34:16
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