problème interro n°2 getStatsManquantes

Voir le sujet précédent Voir le sujet suivant Aller en bas

problème interro n°2 getStatsManquantes

Message  maxime159753 le Lun 09 Jan 2012, 18:02

Bonjour j'ai un problème d'exécution et je n'arrive pas à le résoudre si quelqu'un pourrais m'aider.
Voici monde code :

Code:
int stringToInt(string chaine){
   int entier;
   istringstream convert(chaine);
   convert >> entier;
   return entier;
}

float stringToFloat(string chaine){
   float flotant;
   istringstream convert(chaine);
   convert >> flotant;
   return flotant;
}

void * ptrZone;
   ptrZone = getStatsManquantes();
   char * ptrChar = (char*) ptrZone;
   float * ptrFloat;
   int * ptrInt;
   string chaine1;
   float max, min, prec;
   int mois1, jourMois1;
   unsigned int minSoleil1;

   i = 0;
   while (nbString < 365) { //nbString vaut 335

      cout << nbString <<endl;
      stringstream ss6;
      while (ptrChar[i] != '/') {
         ss6 <<ptrChar[i];
         i++;
      }
      chaine1 = ss6.str();
      mois1 = stringToInt(chaine1);
      cout <<mois1<<endl;

      i++;
      stringstream ss7;
      while (ptrChar[i] != '\0') {
         ss7 <<ptrChar[i];
         i++;
      }
      chaine1 = ss7.str();
      jourMois1 = stringToInt(chaine1);
      cout <<jourMois1<<endl;

      i++;
      ptrFloat = *(float**)(ptrChar+i);
      max = ptrFloat[0]/10,  min = ptrFloat[1]/10, prec = ptrFloat[2];
      cout <<max<<endl;
      cout <<min<<endl;
      cout <<prec<<endl;

      i++;
      ptrInt = (int*)(ptrFloat+i);
      minSoleil1 = ptrInt[i];
      cout << minSoleil1<<endl;

      i++;
      ptrChar = (char*)(ptrInt);
      i++;

      nbString++;
   }

Ce code affiche

Code:
335
10
24
1.13
0.4
2.3
0
336
0
0

et ensuite plante Sad

maxime159753

Nombre de messages : 29
Prénom : Maxime
Date d'inscription : 22/09/2010

Revenir en haut Aller en bas

Re: problème interro n°2 getStatsManquantes

Message  LoopinG le Lun 09 Jan 2012, 20:09

test avec le debugger pour voir ou tu plantes !

LoopinG

Nombre de messages : 100
Prénom : Laurent
Statut : Étudiant en Réseaux et Télécoms
Localisation : L'hôpital de l'armée !
Date d'inscription : 24/03/2011

Revenir en haut Aller en bas

Re: problème interro n°2 getStatsManquantes

Message  maxime159753 le Lun 09 Jan 2012, 20:18

je pense que le problème survient quand j'essaie de récupérer l'entier (int) contenant la durée d'ensoleillement en minutes

maxime159753

Nombre de messages : 29
Prénom : Maxime
Date d'inscription : 22/09/2010

Revenir en haut Aller en bas

Re: problème interro n°2 getStatsManquantes

Message  LoopinG le Lun 09 Jan 2012, 20:23

conseil : si tu m'étais ton i=0; à l'interieur de ton while !

LoopinG

Nombre de messages : 100
Prénom : Laurent
Statut : Étudiant en Réseaux et Télécoms
Localisation : L'hôpital de l'armée !
Date d'inscription : 24/03/2011

Revenir en haut Aller en bas

Re: problème interro n°2 getStatsManquantes

Message  maxime159753 le Lun 09 Jan 2012, 20:29

non cela ne marche pas. Toujours erreur d'exécution

maxime159753

Nombre de messages : 29
Prénom : Maxime
Date d'inscription : 22/09/2010

Revenir en haut Aller en bas

Re: problème interro n°2 getStatsManquantes

Message  LoopinG le Lun 09 Jan 2012, 20:44

Code:

        char * ptrZone;
   ptrZone = (char *) getStatsManquantes();
   char * ptrChar = (char*) ptrZone;
   float * ptrFloat;
   int * ptrInt;
   string chaine1;
   float max, min, prec;
   int mois1, jourMois1;
   unsigned int minSoleil1;

        int cpt = nbString;
   
   while (cpt < 365) { //cpt vaut 335
                i = 0;
                char * ptrChar =  ptrZone;
      cout << cpt <<endl;
      stringstream ss6;
      while (ptrChar[i] != '/') {
         ss6 <<ptrChar[i];
         i++;
      }
      chaine1 = ss6.str();
      mois1 = stringToInt(chaine1);
      cout <<mois1<<endl;

      i++;
      stringstream ss7;
      while (ptrChar[i] != '\0') {
         ss7 <<ptrChar[i];
         i++;
      }
      chaine1 = ss7.str();
      jourMois1 = stringToInt(chaine1);
      cout <<jourMois1<<endl;

      i++;
             
                ptrZone += (i* sizeof(char));
      
                ptrFloat = *(float**) ptrZone;
      max = ptrFloat[0]/10,  min = ptrFloat[1]/10, prec = ptrFloat[2];
      cout <<max<<endl;
      cout <<min<<endl;
      cout <<prec<<endl;

                ptrZone += sizeof(ptrFloat);
      ptrInt = (int*)ptrZone;
      minSoleil1 = *ptrInt;
      cout << minSoleil1<<endl;

      ptrZone += sizeof(int);

                cpt++;
   }
j'ai modifié ton code, regarde un peu les modifs et si tu comprends pas dit moi quoi

le problème c'est que tu parcours mal la zone !

LoopinG

Nombre de messages : 100
Prénom : Laurent
Statut : Étudiant en Réseaux et Télécoms
Localisation : L'hôpital de l'armée !
Date d'inscription : 24/03/2011

Revenir en haut Aller en bas

Re: problème interro n°2 getStatsManquantes

Message  smb le Lun 09 Jan 2012, 20:56

maxime159753 a écrit:

Code:

ptrZone = (char *) getStatsManquantes();
Code:

   while (nbString < 365) { //nbString vaut 335

A mon avis, tu as, dans la première partie de l'exercice, instancié quelques "Journee", et ensuite, tu as dû explorer les "statistiques manquantes", donc le reste des journées de l'année ...

Si, dans la première partie, tu as obtenu X journées, combien de journées manquantes te reste-t-il à obtenir grâce à getStatsManquantes() ?


smb

Nombre de messages : 1035
Age : 64
Prénom : Stéphan
Statut : Don de sang, don de vie!
Localisation : Spy
Date d'inscription : 23/01/2007

Revenir en haut Aller en bas

Re: problème interro n°2 getStatsManquantes

Message  maxime159753 le Lun 09 Jan 2012, 21:00

Merci beaucoup Laurent. Cela marche nickel maintenant. Je vais relire bien attentivement ce code.


Si, dans la première partie, tu as obtenu X journées, combien de journées manquantes te reste-t-il à obtenir grâce à getStatsManquantes() ?

Il me reste donc 365-336 = 29 journées manquantes

maxime159753

Nombre de messages : 29
Prénom : Maxime
Date d'inscription : 22/09/2010

Revenir en haut Aller en bas

Re: problème interro n°2 getStatsManquantes

Message  maxime159753 le Lun 09 Jan 2012, 21:01

maxime159753 a écrit:Merci beaucoup Laurent. Cela marche nickel maintenant. Je vais relire bien attentivement ce code.


Si, dans la première partie, tu as obtenu X journées, combien de journées manquantes te reste-t-il à obtenir grâce à getStatsManquantes() ?

Il me reste donc 365-336 = 29 journées manquantes

maxime159753

Nombre de messages : 29
Prénom : Maxime
Date d'inscription : 22/09/2010

Revenir en haut Aller en bas

Re: problème interro n°2 getStatsManquantes

Message  Contenu sponsorisé Aujourd'hui à 05:25


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum