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

 


Dernière réponse
Sujet : [C++] Besoin d'aide sur un return ... niveau debutant :)
Goratrix Je voudrais juste te conseiller BFRRedox de lire un bouquin de C aux chapitres suivants:
- pointeur
 
- passage par paramètre
 
Apres tout deviendra clair...
 :)  
 
P.S.: oublie ta solution de passer par un tableau car c bidon c pas du C c du bricolage... les pointeurs c fait justement pour modifer une variable a l'interieur d'une fonction...

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Goratrix Je voudrais juste te conseiller BFRRedox de lire un bouquin de C aux chapitres suivants:
- pointeur
 
- passage par paramètre
 
Apres tout deviendra clair...
 :)  
 
P.S.: oublie ta solution de passer par un tableau car c bidon c pas du C c du bricolage... les pointeurs c fait justement pour modifer une variable a l'interieur d'une fonction...
chrisbk

eniac a écrit a écrit :

 
void charger(int *x, int *y, int *z)  
{     *x=... ;
      *y=... ;
      *z=... ;
}      
 
 
Bye  




 
now that's better ;)

Eniac

BFRRedox a écrit a écrit :

Salut, j'ai un problème tout bête sur C++ ...
 
simplement, en utilisant une fonction "charger", elle retourne 3 valeurs




 
je suis juste un chouilla moins débutant que toi, mais ce que je sais, c'est que si tu utilises "return", ça ne marche qu'avec une seule valeur (int, float,double...)
tu as deux solutions :
- ou bien tu crées un tableau de 3 cases dans lequel tu fourres tes trois entiers, et tu dis à ta fonction de retourner le tableau (et non pas les trois valeurs).
- ou bien tu utilises les pointeurs ; il n'y aura plus de commande "return" proprement dite dans ta fonction.  Les pointeurs c'est un peu hard à capter au départ mais une fois que tu as compris, tu pourras plus t'en passer :)  Ainsi,
 
 
main()
{     int a,b,c ;  
      void charger(int x, int y, int z) ;
      charger(&a,&b,&c) ;
      ...=a ;
      ...=b ;
      ...=c ;
}
 
 
void charger(int *x, int *y, int *z)  
{     *x=... ;
      *y=... ;
      *z=... ;
}      
 
 
Bye

 

[jfdsdjhfuetppo]--Message édité par eniac--[/jfdsdjhfuetppo]

Tetragrammaton IHVH

BFRRedox a écrit a écrit :

Salut, j'ai un problème tout bête sur C++ ...
 
simplement, en utilisant une fonction "charger", elle retourne 3 valeurs
 
ex :  
int charger()
{
...
return a,b,c ;
}
 
avec a,b et c 3 int evidement
 
comment puis-je faire pour les recupérer individuellement par la suite?
 
c a d : j'appelle dans mon main :
charger();
et pour recup? :)
si je fais int x = charger(); , x prends uniquement la valeur du dernier int retourné, c'est à dire "c"




 
C'est pas logique ce que tu veux faire : comment veux tu faire "tenir" 3 entiers dans un seul ?  
Pour ton problème, je te conseille de lire un bon bouquin de C++, particulièrement le chapitre sur les tableaux.

youdontcare effectivement :D
Jar Jar Et en plus compact :
return param?(doThis(),true):(doThat,false);
 
(bordel de smilies de merde)
youdontcare >> vu que ca compilait
 
c'est du C standard, le compilo évalue les expressions les unes après les autres.
 
l'intérêt de la virgule dans un return est de compacter le code (après on aime ou on n'aime pas).
 
// version 'standard'
 
bool myFunc(int param)
{
  if (param)
  {
    doThis();
    return true;
  }
  else
  {
    doThat(param);
    return false;
  }
}
 
// version virgule
 
bool myFunc(int param)
{
  if (param)  return doThis(), true;
  else        return doThat(param), false;
}
BFRRedox merci pour ton aide youdontcare...  :jap:  
 
oui, Harry, j'avais lu la doc, ca fait un petit moment que je fais du c++, c juste que j'avais jamais pensé a cette possibilité de retourner plusieurs données par return ...
cette idée lumineuse m'a frappé hier a minuit, et vu que ca compilait, j'ai eu un instant l'espoir que ca fonctionnerait  :pt1cable:  
 
sinon, j'avais pensé à retourner une map (ou vector) contenant mes données pour les recupérer, mais c moins pratique...

 

[jfdsdjhfuetppo]--Message édité par BFRRedox--[/jfdsdjhfuetppo]

HappyHarry g juste une ptite question toute bete ... t'as lu la doc avant de commencer ???
youdontcare tu ne peux retourner qu'un entier ou un pointeur.
 
dans ta fonction, tu peux utiliser le passage par référence pour 'renvoyer' tes variables, puis renvoyer un bool pour savoir si le chargement s'est bien passé.
 
bool charger(int& a, int& b, int& c)
{
  if (erreurquelconque ...) return false;
  a = 1; b = 2; c = 3;
  return true;
}
 
...
 
int a, b, c;
bool b = charger();
verdoux oola !
BFRRedox Salut, j'ai un problème tout bête sur C++ ...
 
simplement, en utilisant une fonction "charger", elle retourne 3 valeurs
 
ex :  
int charger()
{
...
return a,b,c ;
}
 
avec a,b et c 3 int evidement
 
comment puis-je faire pour les recupérer individuellement par la suite?
 
c a d : j'appelle dans mon main :
charger();
et pour recup? :)
si je fais int x = charger(); , x prends uniquement la valeur du dernier int retourné, c'est à dire "c"
 
 
merci d'avance
 
@+

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)