Probleme language c

Fermé
ksta - 4 nov. 2009 à 15:14
 ksta - 4 nov. 2009 à 15:58
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

6 réponses

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

argc contient le nombre d'argument.
0
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
merci beaucoup , jai utiliser strcmp.

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