Probleme language c

Bonjour,

je voudrais mettre une condition dans mon programme pour savoir si mon argv est compris entre 1 et 10 donc jai mis directement if (argv >= 1 && argv <= 10) mais il me dis invalid comparaison between integer et pointer... en vrai je suis daccord mais je narrive pas a voir comment regler ce probleme
Configuration: FreeBSD
Firefox 2.0.0.6

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. je ne souhaite pas tester mon nombre d'argument mais ce qu'il contient, cest la que ca coince....
    1. int main(int argc, char** argv)

      argc contient le nombre d'argument.
      1. je crois que tu n'as pas compris ma question...
        je vais t'expliquer exactement ce que je souhaite obtenir.

        mon prog dois comporter des options du style : ./a.out 1 ou ./a.out 2 ou 3 ou 4 etc...

        je teste donc si mon argv[1] == '1' // Deja est ce que je me trompe des le debut ??

        si argv[1] == '1'

        je fais mes ptit calcul et ensuite je demande a lutilisateur de taper un nombre compris entre 1 et 10 car mon option 1 demande une seconde valeur

        donc je teste : si argv[2] >= '1' && argv[2] <= '10' mais ca ne fonctionne pas... je me rend bien compte que je fais la mauvaise manip mais je ne veux pas a avoir a transformer une chaine en entier via getnbr a chaque fois... je ne sais pas encore.

        bref jespere avoir ete assez clair dans ma question... merci par avance
        1. C'est simple, argv est un tableau de chaine de caractère.
          donc un pointeur sur pointeur.

          utilise les fonctions C de comparaison de chaines de caractères

          si je me souviens bien, ta strcmp pour comparer. donc strcmp(argv[1],"1").

          Sinon tu transforme dabord argv[1] en entier (avec atoi() je crois), et tu le compare comme ça :

          int pouet = atoi(argv[1]);

          if(pouet >=1 && pouet <= 10)
          1. merci beaucoup , jai utiliser strcmp.

            jai preferer cette solution car je ne voulais avoir a declarer plusieur variable.
            merci encore
            a+