variable qui bug - C++ - Programmation
Marsh Posté le 10-01-2005 à 13:55:02
if(argv[i]="t" ) ???
Ca serait pas plutot :
if(argv[i]=="t" )
Marsh Posté le 10-01-2005 à 13:55:25
cad ? je suis un gros noob...
if(argv[i]=="t" ) {
Marsh Posté le 10-01-2005 à 13:56:14
avec de ==, sa me met maintenant tt le temps
Argument n°... ...etc....
Marsh Posté le 10-01-2005 à 13:56:22
je dirait meme
if(argv[i]=='t') {
"t" != 't'
et un strcmp ??
Marsh Posté le 10-01-2005 à 13:57:20
= => opérateur d'affectation (ex : a = b : a prend la valeur de b)
== => opérateur de comparaison (ex : a == b : est ce que a et b sont égaux ?)
Marsh Posté le 10-01-2005 à 13:59:12
la condition est de vérifier si argv[i] est strictement égal à "test", avec les ' ' sa me met une erreur :
12 E:\ltpt\us\main.cpp ISO C++ forbids comparison between pointer and integer
Marsh Posté le 10-01-2005 à 14:04:44
12 E:\ltpt\us\main.cpp ISO C++ forbids comparison between pointer and integer
C'est assez normale car argv est un pointeur de pointeur. Autrement dit argv[i] est un pointeur et contient une adresse. Quant à 't', il doit être interprété comme un entier, c'est aussi normal, à mon avis, car l'opérateur == ne permet pas la comparaison de caractères. Il doit y avoir conversion de 't' en son code ASCII, donc en int.
KangOl t'a donné la solution en te conseillant l'opérateur strcmp qui est tout à fait désigné pour ce genre de comparaison !
Marsh Posté le 10-01-2005 à 14:08:59
je viens de tester la fonction strcmp et déjà sa marche
bon c'est moins beau, et j'ai du remanier le code
merci donc
Code :
|
Marsh Posté le 10-01-2005 à 13:48:58
Voilà un petit prog pour m'entrainer à passer des arguments.
J'ai un petit soucis avec la comparaison de l'argument qui m'affiche toujours le HELLO WORLD, si vous pouviez me donner un coups de mains svp, en m'expliquant pkoi....
Il parait que sa vient de l'ascii, mais sa marche pas non plus
Message édité par scull le 10-01-2005 à 13:53:43
---------------
Créer son forum gratuit | Mon beau blog phpBB caÿ le mal :o