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

SL & STL C++ Discussion :

passsage d'un ifstream en paramètre


Sujet :

SL & STL C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 85
    Par défaut passsage d'un ifstream en paramètre
    Bonjour,
    je définis des méthodes pour lire un fichier par morceaux:
    la méthode principale créée un ifstream puis elle le passe en argument aux autres méthodes:
    malheureusement j'ai un segmentation fault qui apparait dans l'exemple suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void Problem::loadGroups(ifstream& stream) {
        string str="";
        stream >> str; 
        while ( (str == "I") && (!stream.eof()) ) {
            Group group;
            group.loadGroup(stream);
            stream >> str;
        }
    }

    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
    Group Group::loadGroup(ifstream& stream) {
        Group group;
        int id=0;
        string str="", substring="";
        string type="";
        stream >> id >> type;  //segmentation fault
        group.setId(id);
        group.setType(type);
        stream >> str;
        substring = str.substr(0,3);
        while ( (str != "I") && (substring !="***") ) {
            if ( str == "attr" ) {
                this->loadAttributs(stream);
            }
            if ( str == "longeronT" ) {
                this->loadLongeronTfaces(stream);
            }
            if ( str == "longeronL" ) {
                this->loadLongeronLfaces(stream);
            }    
            stream >> str;
            substring = str.substr(0,3);
        }
    }
    merci,
    Xavier

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 85
    Par défaut
    résolu;
    pb de compilation, j'avais oublié de recompiler un fichier,
    désolé,

    bonne soirée,

  3. #3
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Déjà, tu as des initialisations pour les string, c'est inutile.
    Ensuite, c'est pas normal
    Essaie d'élaguer ton code pour obtenir un exemple minimal reproduisant l'erreur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Flux] passer un ifstream en paramètre d'une fonction
    Par yoshï dans le forum Débuter
    Réponses: 4
    Dernier message: 03/12/2009, 15h51
  2. Réponses: 1
    Dernier message: 09/07/2008, 15h54
  3. [SWT] Problème de paramètre GridData
    Par yolepro dans le forum SWT/JFace
    Réponses: 4
    Dernier message: 06/12/2002, 10h37
  4. passage en paramètre d'un array dynamique 2D
    Par Guigui_ dans le forum Langage
    Réponses: 4
    Dernier message: 27/11/2002, 19h47
  5. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24

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