Besoin d'aide pour un code en c

Résolu

Bonjour,

Dans mon exercice, je dois rentrer des arguments x,y,h,w dans la console pour les récuperer à l'aide de la fonction argv. je dois ensuite donner chaque argument à des variables mais je n'y arrive pas. C'est a dire que x doit être donné à une variable a, y à une variable b... tous sont des double. Jai tenté de faire a,b,c,d=atol(argv[1]) mais ca ne fonctionne pas.


Windows / Chrome 108.0.0.0

3 réponses

  1. Si un format précis est garanti et que le nombre d'éléments est connu, un simple sscanf() fera l'affaire:

    sscanf( argv[1], "%lf,%lf,%lf,%lf", &a, &b, &c, &d );
    1
    1. Merci beaucoup pour votre aide Dalfab je viens d'essayé et ca fonctionne !

      0
  2. Bonjour,

    Si j'ai bien compris la problématique, il faut les convertir un après l'autre;

    double  a = strtod( argv[1], NULL ); // convertir en double le 1er paramètre
    double  b = strtod( argv[2], NULL );
    double  c = strtod( argv[3], NULL );
    double  d = strtod( argv[4], NULL );
    0
    1. Bonjour Dalfab ce n'est pas cela.

      En fait  mon argv[1] représente des coordonnées x,y et une hauteur et largeur h,w tous mis ensemble et séparés par des virgules sans espace par exemple :

      argv[1]='-1.14,-0.21,0.0055,0.0055'

      donc lorsque que lance mon programme j'écris:

      ./mandel -1.14,-0.21,0.0055,0.0055 

      Ce qui me pose problème c'est que je n'arrive pas à découper argv[1] en 4 parties distinctes pour donner chaqu'une des coordonnées à mes variables pour pouvoir les utiliser ensuite.

      0
  3. Bonjour,

    argv[1] étant une chaine, tu peux la découper avec strtok(), en utilisant la virgule comme séparateur:

    0