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

 C++ Discussion :

Transformer string en entier


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 56
    Par défaut Transformer string en entier
    Bonjour,

    je souhaiterais transformer un string récupérer à partir d'un fichier texte en entiers.

    Par exemple le fichier texte peut-être :
    0 1 2
    3 12 34
    345 2344 1
    1 2 2323
    32 2323 23

    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
     
    void mobile::chargerTxt()
    {
     
         ifstream fichier("config.txt", ios::in);  // on ouvre le fichier en lecture
     
            if(fichier)  // si l'ouverture a réussi
            {
                    string ligne;
     
                    while( getline(fichier, ligne) )
                    {
                        int temps,x,y;
                        istringstream istr(ligne);
                        ligne >> temps >> x >> y;
                    }
     
                    fichier.close();  // on ferme le fichier
            }
            else  // sinon
                    cerr << "Impossible de charger le fichier de config!" << endl;
     
    }
    Voici ce à quoi j'avais pensé mais cela ne fonctionne pas.

    Pourriez-vous m'aider ?


    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 56
    Par défaut
    J'ai trouvé une solution :

    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
     
     
    if (fichier)
        {
            string ligne;
            int temps,x,y;
     
            while ( getline(fichier, ligne) )
            {
                stringstream ligneStream(ligne);
                string souschaine;
                int i = 0;
     
                while (getline(ligneStream, souschaine,' '))
                {
                    if (i==0)
                    {
                        istringstream istr(souschaine);
                        istr>>temps;
                    }
                    if (i==1)
                    {
                        istringstream istr(souschaine);
                        istr>>x;
                    }
                    if (i==2)
                    {
                        istringstream istr(souschaine);
                        istr>>y;
                    }
                    i++;
                }
                addEtape(x,y,temps);
            }
     
            fichier.close();
    Peut-être y en a t-il une meilleure ?

  3. #3
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Bonjour,
    Dans le premier exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if(fichier)  // si l'ouverture a réussi
    {
       string ligne;
     
       while( getline(fichier, ligne) )
       {
          int temps,x,y;
          istringstream istr(ligne);
          ligne >> temps >> x >> y;
          faireQuelqueChose(temps, x, y);
      }
    fichier.close();  // on ferme le fichier
    il faut mettre istr >> temps >> x >> y;

    Attention aussi au niveau des include. Il faut :

    #include <string> pour les string
    #include <fstream> pour ifstream (input file stream)
    #include <sstream> pour istringstream (input string stream)
    #include <iostream> pour cerr

  4. #4
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    Je rajouterais que la fermeture du fichier via close() est inutile ici. fstream implémentant le RAII.

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour
    Un rapide tour dans la FAQ t'aurais permis de répondre à ta question.

  6. #6
    Membre éprouvé
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    189
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 189
    Par défaut
    A noter aussi qu'un test sur istr >> temps >> x >> y; serait bien vu pour être certain que les valeurs temps, x et y soient correctes. ( FAQ surement )

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

Discussions similaires

  1. [Debutant]Transformer string en int
    Par htaou dans le forum SL & STL
    Réponses: 7
    Dernier message: 09/09/2005, 21h28
  2. [Débutant(e)]convertir un string en entier
    Par harris_macken dans le forum Langage
    Réponses: 2
    Dernier message: 01/04/2005, 07h20
  3. [debutant]transform chaine en entier
    Par loutente dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/03/2005, 10h53
  4. Ajouter a une variable de type string, un entier
    Par Little-Freud dans le forum SL & STL
    Réponses: 12
    Dernier message: 05/03/2005, 19h33
  5. transformer string en numerique
    Par chrys76 dans le forum ASP
    Réponses: 14
    Dernier message: 05/12/2003, 13h27

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