Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1060 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  variable qui bug

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

variable qui bug

n°949972
scull
MySCULL cay bon mangez en!
Posté le 10-01-2005 à 13:48:58  profilanswer
 

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

Code :
  1. #include <stdio.h>
  2. int main(int argc, char *argv[])
  3. {
  4.   int i;
  5.   printf("Nom du programme: %s\n", argv[0]);
  6.   for(i=1; i<argc; i++)
  7.   {
  8.       printf (argv[i]);
  9.       if(argv[i]="t" ) {
  10.    printf("hello world" );   
  11.       } else {
  12.          
  13.    printf("Argument n°%d: %s\n", i, argv[i]);
  14.   }
  15.   printf("\nBye ...\n" );
  16.   return 0;
  17. }


Message édité par scull le 10-01-2005 à 13:53:43

---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
mood
Publicité
Posté le 10-01-2005 à 13:48:58  profilanswer
 

n°949987
KangOl
Profil : pointeur
Posté le 10-01-2005 à 13:54:28  profilanswer
 

euh...
 
relis bien la condition et puis va te cacher :o

n°949989
nathan_g
Posté le 10-01-2005 à 13:55:02  profilanswer
 

if(argv[i]="t" ) ???
 
Ca serait pas plutot :
 
if(argv[i]=="t" )

n°949990
scull
MySCULL cay bon mangez en!
Posté le 10-01-2005 à 13:55:25  profilanswer
 

cad ? je suis un gros noob...
if(argv[i]=="t" ) {


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
n°949993
scull
MySCULL cay bon mangez en!
Posté le 10-01-2005 à 13:56:14  profilanswer
 

avec de ==, sa me met maintenant tt le temps
Argument n°... ...etc....


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
n°949994
KangOl
Profil : pointeur
Posté le 10-01-2005 à 13:56:22  profilanswer
 

je dirait meme
 
if(argv[i]=='t') {
 
"t" != 't'
 
et un strcmp ??

n°949997
nathan_g
Posté le 10-01-2005 à 13:57:20  profilanswer
 

=    =>  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 ?)

n°949999
scull
MySCULL cay bon mangez en!
Posté le 10-01-2005 à 13:59:12  profilanswer
 

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


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
n°950001
KangOl
Profil : pointeur
Posté le 10-01-2005 à 14:00:23  profilanswer
 

utilise strcmp :o

n°950008
nathan_g
Posté le 10-01-2005 à 14:04:44  profilanswer
 

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 !

mood
Publicité
Posté le 10-01-2005 à 14:04:44  profilanswer
 

n°950015
scull
MySCULL cay bon mangez en!
Posté le 10-01-2005 à 14:08:59  profilanswer
 

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 :
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main(int argc, char *argv[])
  4. {
  5.   int i;
  6.   printf("Nom du programme: %s\n", argv[0]);
  7.   for(i=1; i<argc; i++)
  8.   {
  9.       printf (argv[i]);
  10.      
  11.    if (strcmp(argv[i],"test" )==0) 
  12.              
  13.    printf("hello world" );   
  14.       }
  15.          
  16.    printf("Argument n°%d: %s\n", i, argv[i]);
  17.   printf("\nBye ...\n" );
  18.   return 0;
  19.   }


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  variable qui bug

 

Sujets relatifs
Graphique couplé avec variable $_POSTImpossible de mettre un identifiant de fichier dans une variable !
Afficher la valeur d'une variable[caml] Peut-on déclarer une variable polymorphe [...] ?
Variable publique, creation dynamique ?[Perl] Executer le contenu d'une variable
[PHP]Récuperation d'une boucle en variableUn petit conseil concernant la valeur d'une variable
supprimer une variable d'une variable, est-ce possible ?recuperer une variable public d un autre package
Plus de sujets relatifs à : variable qui bug


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR