Probleme language c

ksta -  
 ksta -
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

  1. francis
     
    En testant argc ce ne serai pas mieu ?
    0
  2. ksta
     
    je ne souhaite pas tester mon nombre d'argument mais ce qu'il contient, cest la que ca coince....
    0
  3. francis
     
    int main(int argc, char** argv)

    argc contient le nombre d'argument.
    0
  4. ksta
     
    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
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. francis
     
    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)
    0
  7. ksta
     
    merci beaucoup , jai utiliser strcmp.

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