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

  FORUM HardWare.fr
  Programmation
  C++

  Problème de variables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de variables

n°1103099
Llialn
Posté le 31-05-2005 à 16:26:17  profilanswer
 

Comment se fait il que lorsque j'effectue une action en utilisant cette classe, il ne mémorise pas les valeurs modifiées et me ressort à chaque fois les valeurs que je lui met lorsque je l'initialise. Pour les courageux, voici le code :
 

Code :
  1. #include "Attributs.h"
  2. Attributs::Attributs()
  3. {
  4. //cout<<"Constructeur par défaut Attributs"<<endl;
  5. for(int i=0; i<5; i++)
  6. {
  7.  tableau[i]=5;
  8. }
  9.  caractere=5;
  10.  sociabilite=5;
  11.  nourriture=5;
  12.  proprete=5;
  13.  sante=5;
  14.  vie=15000;
  15.  evolution=0;
  16.  compteur1=5;
  17.  sortie=tab[0]=true;
  18. }
  19. /***************************************************************************************************************************************/
  20. //Cette méthode consiste à ajouter le nombre voulu de points dans l'attribut que l'on souhaite. Cela dépend de l'action effectuée par le tama
  21. void Attributs::ajouter(int &var, int &att)
  22. {
  23. //cout<<"méthode ajouter"<<endl;
  24. //var représente la valeur à ajouter et att représente l'attribut choisi
  25. switch (att)
  26. {
  27. case(1): caractere+=var;   //1 pour le caractere
  28.    tableau[0]=caractere;
  29.    if(caractere>10)
  30.    {
  31.     caractere=10;
  32.     tableau[0]=caractere;
  33.    }
  34.    //stocker.tableau[0]=caractere;
  35.    break;
  36. case(2): sociabilite+=var;  //2 pour la soc
  37.    tableau[1]=sociabilite;
  38.    if(sociabilite>10)
  39.    {
  40.     sociabilite=10;
  41.     tableau[1]=sociabilite;
  42.    }
  43.    //stocker.tableau[1]=sociabilite;
  44.    break;
  45. case(3): nourriture+=var;  //3 pour la nourriture
  46.    tableau[2]=nourriture;
  47.    if(nourriture>10)
  48.    {
  49.     nourriture=10;
  50.     tableau[2]=nourriture;
  51.    }
  52.   // stocker.tableau[2]=nourriture;
  53.    break;
  54. case(4): proprete+=var;   //4 pour la proprete
  55.    tableau[3]=proprete;
  56.    if(proprete>10)
  57.    {
  58.     proprete=10;
  59.     tableau[3]=proprete;
  60.    }
  61.    //stocker.tableau[3]=proprete;
  62.    break;
  63. case(5): sante+=var;    //5 pour la sante
  64.    tableau[4]=sante;
  65.    if(sante>10)
  66.    {
  67.     sante=10;
  68.     tableau[4]=sante;
  69.    }
  70.    //stocker.tableau[4]=sante;
  71.    break;
  72. default: cout<<"erreur manip"<<endl;  //si aucun des chiffres désignés, erreur manip
  73.    break;
  74. }
  75. //stocker.recevoir(caractere, sociabilite, nourriture, proprete, sante);
  76. }
  77. /**************************************************************************************************************/
  78. //Cette méthode consiste à enlever le nombre voulu de points dans l'attribut que l'on souhaite. Cela dépend de l'action effectuée par le tama
  79. void Attributs::enlever(int &var, int &att)
  80. {
  81. //cout<<"méthode enlever"<<endl;
  82. //var représente la valeur à enlever et att représente l'attribut choisi
  83. switch (att)
  84. {
  85. case(1): caractere-=var;   //1 pour le caractere
  86.    tableau[0]=caractere;
  87.    if(caractere<0)
  88.    {
  89.     caractere=0;
  90.     tableau[0]=caractere;
  91.    }
  92.   // stocker.tableau[0]=caractere;
  93.    break;
  94. case(2): sociabilite-=var;  //2 pour la soc
  95.    tableau[1]=sociabilite;
  96.    if(sociabilite<0)
  97.    {
  98.     sociabilite=0;
  99.     tableau[1]=sociabilite;
  100.    }
  101.   // stocker.tableau[1]=sociabilite;
  102.    break;
  103. case(3): nourriture-=var;  //3 pour la nourriture
  104.    tableau[2]=nourriture;
  105.    if(nourriture<0)
  106.    {
  107.     nourriture=0;
  108.     tableau[2]=nourriture;
  109.    }
  110.   // stocker.tableau[2]=nourriture;
  111.    break;
  112. case(4): proprete-=var;   //4 pour la proprete
  113.    tableau[3]=proprete;
  114.    if(proprete<0)
  115.    {
  116.     proprete=0;
  117.     tableau[3]=proprete;
  118.    }
  119.  //  stocker.tableau[3]=proprete;
  120.    break;
  121. case(5): sante-=var;    //5 pour la sante
  122.    tableau[4]=sante;
  123.    if(sante<0)
  124.    {
  125.     sante=0;
  126.     tableau[4]=sante;
  127.    }
  128.  //  stocker.tableau[4]=sante;
  129.    break;
  130. default: cout<<"erreur manip"<<endl;  //si aucun des chiffres désignés, erreur manip
  131.    break;
  132. }
  133. //stocker.recevoir(caractere, sociabilite, nourriture, proprete, sante);
  134. }
  135. /********************************************************************************************************/
  136. bool Attributs::sortir()
  137. {
  138. //cout<<"methode sortir de attributs"<<endl;
  139. sortie=!sortie;
  140. tab[0]=sortie;
  141. return tab[0];
  142. }
  143. /*******************************************************************************************************/
  144. void Attributs::afficher()
  145. {
  146. cout<<"Voici les scores :"<<endl;
  147. cout<<"Caractère : "<<tableau[0]<<endl;
  148. cout<<"Sociabilite : "<<tableau[1]<<endl;
  149. cout<<"Nourriture : "<<tableau[2]<<endl;
  150. cout<<"Proprete : "<<tableau[3]<<endl;
  151. cout<<"Santé : "<<tableau[4]<<endl;
  152. //cout<<"méthode afficher"<<endl;
  153. //stocker.score();
  154. }
  155. /********************************************************************************************************/
  156. bool Attributs::acesseur()
  157. {
  158. //cout<<"acesseur de attributs"<<endl;
  159. tab[0]=sortie;
  160. return tab[0];
  161. }
  162. /********************************************************************************************************/
  163. void Attributs::stocker1()
  164. {
  165. cout<<"Méthode stocker"<<endl;
  166.   FILE *fp = fopen("test.txt", "w+" );
  167.   //fwrite(essai, sizeof(int), 2, fp);
  168. fprintf(fp, "%d", caractere);
  169. fprintf(fp, "%d", sociabilite);
  170. fprintf(fp, "%d", nourriture);
  171. fprintf(fp, "%d", proprete);
  172. fprintf(fp, "%d", sante);
  173.     fclose(fp);
  174. }
  175. /*********************************************************************************************************/
  176. void Attributs::lire()
  177. {
  178. cout<<"Méthode lire"<<endl;
  179. // FILE *fichier;
  180. /*if (fscanf(stdin, "%d", &i))
  181. printf("L'entier lu est : %i\n", i);
  182. else {
  183. printf("Erreur lors de la lecture depuis le fichier d'entrée standard.\n" );
  184. return 1;*/
  185. getch();
  186. //fichier=fopen("test.txt", "w+" );
  187. //fread( tableau, sizeof(int), 5, fichier );
  188. for(int i=0; i<5; i++)
  189. {
  190.  //fscanf( fichier, "%d", tableau[i] );
  191. }
  192. /* tableau[0]=caractere;
  193. tableau[1]=sociabilite;
  194. tableau[2]=nourriture;
  195. tableau[3]=proprete;
  196. tableau[4]=sante;*/
  197. }


Message édité par Llialn le 01-06-2005 à 10:21:49
mood
Publicité
Posté le 31-05-2005 à 16:26:17  profilanswer
 

n°1103153
IrmatDen
Posté le 31-05-2005 à 16:51:34  profilanswer
 

Salut,
Est-ce que les non-courageux auraient droits à la balise "code" et au morceau de code qui pose problème à priori ?
PS : je me range dans les non-courageux...

n°1103165
Llialn
Posté le 31-05-2005 à 16:55:17  profilanswer
 

Ne sachant pas moi même exactement le code qui pose problème, je sais juste que c'est dans cette classe qu'il y a un prlblème. Si tu veux le code fait plus du double que ce qui est affiché donc je ne pense pas que le non courageux comme toi (que je comprend tout à fait d'ailleurs :D :D ) aient envi de tout lire. Je sais juste qu'il y a un problème de "communication" entre les méthodes, voir même entre les autres classes. Et je ne sais pas trop comment résoudre le problème. Si qqun par chance, voit qq chose, qu'il me le fasse savoir. Merci d'avance  :jap:

n°1103294
Joel F
Real men use unique_ptr
Posté le 31-05-2005 à 18:26:28  profilanswer
 

balise [ cpp] bordel :o c'est illisible :o

n°1103473
blastman
just me !
Posté le 31-05-2005 à 21:57:46  profilanswer
 
n°1103482
Taz
bisounours-codeur
Posté le 31-05-2005 à 22:03:11  profilanswer
 

[:ban]

n°1103802
Llialn
Posté le 01-06-2005 à 10:22:29  profilanswer
 

Ca y est j'ai fait comme vous m'aviez demandé, je n'avais pas vu ce bouton, mais je l'utiliserai à l'avenir car il est bien pratique.
Merci beaucoup :jap:

n°1103857
Taz
bisounours-codeur
Posté le 01-06-2005 à 10:48:29  profilanswer
 

ça n'en reste pas moins du C

n°1103875
Llialn
Posté le 01-06-2005 à 11:02:23  profilanswer
 

Je ne savais pas que les classes existaient en C :S

n°1103913
blastman
just me !
Posté le 01-06-2005 à 11:37:06  profilanswer
 

Llialn a écrit :

Je ne savais pas que les classes existaient en C :S


Code :
  1. ...
  2.   FILE *fp = fopen("test.txt", "w+" );
  3.   //fwrite(essai, sizeof(int), 2, fp);  
  4.     fprintf(fp, "%d", caractere);
  5.     fprintf(fp, "%d", sociabilite);
  6.     fprintf(fp, "%d", nourriture);
  7.     fprintf(fp, "%d", proprete);
  8.     fprintf(fp, "%d", sante);
  9.     fclose(fp);
  10. ...
  11. getch()
  12. ...


 
je savais pas que ça existaient en C++  :)


---------------
http://www.blastmanu.info
mood
Publicité
Posté le 01-06-2005 à 11:37:06  profilanswer
 

n°1103953
Llialn
Posté le 01-06-2005 à 12:05:39  profilanswer
 

on a pas le droit de mélanger le C et le C++? C'est que ca me paraissait plus simple comme ça, mais si tu as une autre facon de le faire plus facile, je veux bien que tu me la dise :)
 
Merci :jap:

n°1103959
Taz
bisounours-codeur
Posté le 01-06-2005 à 12:12:34  profilanswer
 

non. Surtout quand c'est du mauvais C

n°1103985
Llialn
Posté le 01-06-2005 à 12:26:54  profilanswer
 

Et bien il faudrait que j'utilise quelle fonction pour écrire dans un fichier, c'est fwrite c'est bien ça?
Dites moi comment il faut l'utiliser svp  :love:

n°1104023
blastman
just me !
Posté le 01-06-2005 à 12:53:21  profilanswer
 

fstream
 
http://c.developpez.com/faq/cpp/?page=fichiers


Message édité par blastman le 01-06-2005 à 12:56:48

---------------
http://www.blastmanu.info

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

  Problème de variables

 

Sujets relatifs
Problème concaténation variables [RESOLU]Probléme avec des variables globales
[C] Problème avec les types de variables en C[java] Problème avec les variables
[résolu] problème pour récupérer variablesprobleme erreur Undefined offset variables de session
Variables : probleme d'un débutant( AIDE ) Problème de variables
Problème pour récuperer des variables POST - Débutant -Problème avec la copie de variables
Plus de sujets relatifs à : Problème de variables


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