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 :

std::string + lire trois floats


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Par défaut std::string + lire trois floats
    Bonjour,

    Je lis la ligne suivante contenue dans un fichier en utilisant la STL:
    Je la récupère dans un std::string. Mon problème: comment récupérer mes 3 floats ? J'ai bien une solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sscanf(line.data + 2 , "%f %f %f", &f1, &f2, &f3)
    mais bon vous m'avouerez que ce n'est pas très joli ... et en plus j'utilise une fonction C. Je suppose que la STL est capable de faire ça facilement, non ?

    Je suppose qu'il faut utiliser >> mais comment c'est le "v " qui me pose problème...

    Merci d'avance!
    Cordialement,
    Rodrigue

  2. #2
    Membre émérite

    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    634
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par défaut
    std::getline() avec un caractère d'espace dans le dernier paramètre ?

    : http://c.developpez.com/faq/cpp/?pag...#STRING_tokens

  3. #3
    Membre éclairé Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Par défaut
    Zut! J'y avais pas pensé ... Comme quoi parfois on cherche midi à quatorze heure pour rien !

    Question comment passer mon std::string dans getline?
    Je vois dans la faq qu'il faut utiliser un std::istreamstring ... mais pour la convertion : std::istreamstring iss(line)
    ça ne fonctionne pas!

  4. #4
    Membre éclairé Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Par défaut
    Oops, je n'ai rien dit ... problème d'include!
    Ca fonctionne merci

  5. #5
    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
    Et pourquoi pas directement extraire les flottants directement à partir du fichier ? Avec une chaîne bidon pour virer le 'v'.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    std::string bidon; // ou char si tu n'as toujours qu'un caractère
    float f1, f2, f3;
    fichier >> bidon >> f1 >> f2 >> f3;

  6. #6
    Membre éclairé Avatar de Rodrigue
    Inscrit en
    Août 2002
    Messages
    487
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 487
    Par défaut
    Loulou24: penses-tu que cela serait plus rapide ?
    Le problème c'est que j'ai différents types de ligne à lire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     #commentaire
     
    v float float float
    f int int int
    Si tu vois une solution plus rapide, je suis preneur bien entendu !

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

Discussions similaires

  1. [conversions] float to std::string
    Par poukill dans le forum SL & STL
    Réponses: 4
    Dernier message: 08/03/2007, 11h46
  2. convertir std::string en float
    Par radicalrider dans le forum SL & STL
    Réponses: 20
    Dernier message: 03/07/2006, 18h50
  3. [débutant] equivalent à sprintf pour les std::string
    Par Biosox dans le forum SL & STL
    Réponses: 22
    Dernier message: 26/08/2005, 12h46
  4. cannot convert 'std::string' to 'System::String ^'
    Par broadhead dans le forum MFC
    Réponses: 1
    Dernier message: 14/06/2005, 11h37
  5. std::string, operator =
    Par tut dans le forum SL & STL
    Réponses: 10
    Dernier message: 05/11/2004, 12h07

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