IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

mon projet a des erreurs please help :)


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Par défaut mon projet a des erreurs please help :)
    Mon premier problème concerne des listes et les itérator.

    voici une de mes classes Concurrent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    #include "concurrent.h"
    Cconcurrent::Cconcurrent()
    {
    }
    Cconcurrent::Cconcurrent(string unNom, int unNumero)
    {
    nom = unNom ;
    numero = unNumero;
    }
    Cconcurrent::~Cconcurrent()
    {
    }
    void Cconcurrent::setNumero(int unNumero)
    {
    numero = unNumero ;
    }
    void Cconcurrent::setNom(string unNom)
    {
    nom = unNom ;
    }
    string Cconcurrent::getNom()
    {
    return nom;
    }
    int Cconcurrent::getNumero()
    {
    return numero;
    }
    voici mon main
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
    // main.cpp : définit le point d'entrée pour l'application console.
    #include <fstream>
    #include <iostream>
    #include "stdafx.h"
    #include <string>
    #include "stdio.h"
    #include <stdlib.h>
    #include "rallye.h"
     
    using namespace std;
     
    int _tmain(int argc, _TCHAR* argv[])
    {  
    // CREATION DES OBJETS ET ITERATEURS
     Crallye rally ;
     Cconcurrent concurrent,concurrent2;
     list<Cconcurrent> listeConcurrent;
     list<Cconcurrent>::iterator itConcurrent = listeConcurrent.begin();
     
     string  nom2,nom3,nom4 ;
     int num = 0  ;
     nom3 = " ha ha ha ha " ;
     nom2 = " he he he he " ;
     
     concurrent = Cconcurrent(nom3,1);
    listeConcurrent.push_back(concurrent);
     
     concurrent2 = Cconcurrent(nom2,2);
     listeConcurrent.push_back(concurrent2);
     
      ofstream fichier;
      // Cumulation des modes d'ouverture via l'opérateur binaire "ou"
      fichier.open("test.txt", ios::out | ios::trunc);
      if(fichier.bad())
        return(1);   // Erreur a l'ouverture, on quitte...
      listeConcurrent.begin() ;
     
      num = (*itConcurrent).getNumero();
      fichier << num << endl;
     
    // pour le nom je fait comme ca :
    //  nom = (*itConcurrent).getNom();
    //  fichier << nom << endl;
     
     
      // Fermeture du fichier
      fichier.close();
      return(0);
    }
    Le but de ce main est d'insérer 2 concurents dans une list de concurrent, et de recupérer un élément de la liste.

    qd j'exécute le prog pour en retirer le nom j'ai une Runtime erreur

    qd j'exécute le prog pour en retirer le numéro je recup le chiffre suivant : -842150451

  2. #2
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Par défaut
    http://club.developpez.com/regles/#L3.3

    3.3. Titre de votre message

    Prenez le temps qu'il faut pour bien choisir le titre de votre question.

    Les titres de questions sans aucuns sens du genre "Au secours" , "Help !!!", "aidez moi", "une question" , "Petit problème", etc. font perdrent un temps considérable aux lecteurs, qui doivent cliquer sur les messages dont le titre n'évoque rien. C'est pire encore quand vous faites une recherche sur les anciens messages.

    Les messages aux titres inadéquats pourront être soit édités, soit supprimés, soit boycottés, suivant l'humeur des lecteurs et des modérateurs.

  3. #3
    Membre émérite Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Par défaut
    Bonjour,
    Le problème vient de tes strings nom,nom1...

    Certes ils sont déclarés mais la mémoire n'est pas réservé !

    Essai avec:
    Ici, il y a réservation de mémoire

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Citation Envoyé par Caine
    Bonjour,
    Le problème vient de tes strings nom,nom1...

    Certes ils sont déclarés mais la mémoire n'est pas réservé !

    Essai avec:
    Ici, il y a réservation de mémoire
    Faut pas confondre string et char . Ici tout va très bien au niveau des chaînes.

    qd j'exécute le prog pour en retirer le nom j'ai une Runtime erreur

    qd j'exécute le prog pour en retirer le numéro je recup le chiffre suivant : -842150451
    Le debugger et l'execution pas à pas sont là pour régler ce genre de problème mieux que nous.

  5. #5
    Membre émérite Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Par défaut
    J'avais un doute, maintenant j'ai une certitude

    Il est vrai que l'opérateur d'affectation de la classe String doit pallier le bon vieux problème des char *.

    Toutes mes excuses pour cette réponse erronée. Il faut dire que j'utilise trop souvent un vieux compilateur C++ qui ne connait pas les string à mon très grand regret

  6. #6
    Membre éprouvé
    Inscrit en
    Avril 2004
    Messages
    122
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 122
    Par défaut
    Salut,

    Apparemment, tu as quelques souci avec les iterateurs.
    Au début tu initialises itConcurrent, ce qui ne sert à rien puisque ta liste est vide.

    Ensuite tu fais "listeConcurrent.begin() ;" alors que tu devrais faire "itConcurrent = listeConcurrent.begin()".

    Quand tu veux utiliser un iterateur, il ne faut surtout pas oublier de le tester avant ! Tu devrais faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if (itConcurrent  != listeConcurrent.end())
      {
      num = (*itConcurrent).getNumero(); 
      fichier << num << endl; 
      nom = (*itConcurrent).getNom(); 
      fichier << nom << endl;
      }
    Voilà.

Discussions similaires

  1. Erreur dans mon Code ! Laquelle ? Please help!
    Par Belerod dans le forum Général Python
    Réponses: 3
    Dernier message: 24/01/2012, 14h48
  2. help,erreur inconnu dans mon projet
    Par kkkkkk dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 15/06/2007, 18h41
  3. Réponses: 12
    Dernier message: 11/04/2006, 17h36
  4. Ajouter des nouveaux package à mon projet
    Par mikky dans le forum JBuilder
    Réponses: 3
    Dernier message: 31/03/2005, 07h54
  5. Réponses: 5
    Dernier message: 05/06/2004, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo