Récupérer un int en dehors de la fonction.

Récupérer un int en dehors de la fonction. - C - Programmation

Marsh Posté le 15-01-2010 à 18:25:56    

Bonjour.
J'ai sauvegardé dans un fichier 7 entiers séparés par une virgule désignant des variables que j'aimerai utiliser en dehors de la fonction.
exemple: charger2(0) équivaudrait à hauteur0
Je commence la programmation et ça fait 2 heures que je suis là dessus...

 
Code :
  1. void charger2(){
  2.    
  3.     FILE* fichier = NULL;
  4.     fichier = fopen("hauteur.txt", "r+" );
  5.     if (fichier != NULL){ 
  6.         fscanf(fichier, "%d %d %d %d %d %d %d", &hauteur0,&hauteur1,&hauteur2,&hauteur3,&hauteur4,&hauteur5,&hauteur6);
  7.         fclose(fichier);
  8.     }
  9. }
 

D'avance merci pour le coup de main.


Message édité par Leilu le 15-01-2010 à 18:30:09
Reply

Marsh Posté le 15-01-2010 à 18:25:56   

Reply

Marsh Posté le 16-01-2010 à 09:52:35    

L'idée ets de passer des paramétres à la fonction. Or en C, le passage apr défaut est par valeur. Il faut donc passer un poinetru vers les variables à modifier. Pour tout regrouper et rester plsu compact, passe par une structure.

 
Code :
  1. typedef struct
  2. {
  3.   int valeur[7];
  4. } hauteurs;
  5. void charger2(hauteurs* data)
  6. {
  7.  
  8.     FILE* fichier = NULL;
  9.     fichier = fopen("hauteur.txt", "r+" );
  10.     if (fichier != NULL){
  11.         fscanf(fichier, "%d %d %d %d %d %d %d"
  12.                  ,&data->valeur[0]
  13.                  ,&data->valeur[1]
  14.                  ,&data->valeur[2]
  15.                  ,&data->valeur[3]
  16.                  ,&data->valeur[4]
  17.                  ,&data->valeur[5]
  18.                  ,&data->valeur[6]
  19.            );
  20.         fclose(fichier);
  21.     }
  22. }
  23. int main()
  24. {
  25.   hauteurs mes_hauteurs;
  26.   charger2(&hauteurs);
  27. }


Message édité par Joel F le 16-01-2010 à 09:53:15
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed