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 :

convertir std::string en float


Sujet :

SL & STL C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Juin 2005
    Messages
    89
    D�tails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 89
    Par d�faut convertir std::string en float
    Bonjour, j'ai une fonction qui retroune une chaine apr�s avoir lu dans un fichier XML. En fonctions des cas, cette chaine peut �tre utilis�e telle quelle ou parfois, elle doit etre utiliser en tant que float.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    std::string str = "1,5";
    float f = str;
    il apparait donc le code d'erreur impossible de convertir une chaine en float, avez vous une solution??
    merci

  2. #2
    Expert confirm�
    Avatar de Swo�g
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    D�tails du profil
    Informations personnelles :
    �ge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par d�faut
    tu devrais jetter un coup d'oeil dans la : Comment convertir une string en un objet de n'importe quel type ?
    R�dacteur "�clectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les R�gles du Forum - Mon Site Web sur DVP.com (D�veloppement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne r�pondrai � aucune question technique via MP, MSN ou Skype : les Forums sont l� pour �a !!! Merci de me demander avant de m'ajouter � vos contacts sinon je bloque !
    pensez � la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  3. #3
    Invit�
    Invit�(e)
    Par d�faut
    Citation Envoy� par radicalrider
    Bonjour, j'ai une fonction qui retroune une chaine apr�s avoir lu dans un fichier XML. En fonctions des cas, cette chaine peut �tre utilis�e telle quelle ou parfois, elle doit etre utiliser en tant que float.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    std::string str = "1,5";
    float f = str;
    il apparait donc le code d'erreur impossible de convertir une chaine en float, avez vous une solution??
    merci

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    float f=atof(str.c_str());
    non?

  4. #4
    Expert confirm�
    Avatar de Swo�g
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    D�tails du profil
    Informations personnelles :
    �ge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par d�faut
    Citation Envoy� par Luc Raymond
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    float f=atof(str.c_str());
    non?
    �a c'est du C... de plus, sauf erreur de ma part, atof est obsol�te, non ?
    R�dacteur "�clectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les R�gles du Forum - Mon Site Web sur DVP.com (D�veloppement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne r�pondrai � aucune question technique via MP, MSN ou Skype : les Forums sont l� pour �a !!! Merci de me demander avant de m'ajouter � vos contacts sinon je bloque !
    pensez � la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  5. #5
    Invit�
    Invit�(e)
    Par d�faut
    Citation Envoy� par Swo�g
    �a c'est du C... de plus, sauf erreur de ma part, atof est obsol�te, non ?
    cela reviendrait au m�me de dire que le language C est obsolete! ATOF est encore valide dans le standard ansi-c.

    On peut arriver � l'�quivalent avec un proc�d� iostream, mais il n'y pas d'obligation de l'utiliser. Je n'offrais qu'une alternative simple.

    J'utilise souvent le printf au lieu du cout, je ne m�rite pas le coup de fouet pour autant!

  6. #6
    Expert confirm�
    Avatar de Swo�g
    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    6 045
    D�tails du profil
    Informations personnelles :
    �ge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 6 045
    Par d�faut
    ce que je voulais dire, c'est qu'il me semblait que m�me en C les fonction *toa ou ato* �taient pass�es obsol�tes et que d'autres fonctions les rempla�aient...

    de plus, si tu fait du C++, alors si tu m�rites les coups de fouet
    C++ et C sont des langages diff�rents, avec des optiques diff�rentes...

    Si des librairies existent en C++ alors utiliser leur version C est un non-sens, et surtout quand on parle de la SL... rien n'est pire qu'un code o� se m�le C et C++ �a aide pas � la lecture, et �a rel�ve du non suivi total des r�gles de coding...
    R�dacteur "�clectique" (XML, Cours PHP, Cours JavaScript, IRC, Web...)
    Les R�gles du Forum - Mon Site Web sur DVP.com (D�veloppement Web, PHP, (X)HTML/CSS, SQL, XML, IRC)
    je ne r�pondrai � aucune question technique via MP, MSN ou Skype : les Forums sont l� pour �a !!! Merci de me demander avant de m'ajouter � vos contacts sinon je bloque !
    pensez � la balise [ code ] (bouton #) et au tag :resolu: (en bas)

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    38
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 38
    Par d�faut Boost
    Une solution �l�gante mais pas forc�ment facile est d'utiliser la libraire Boost.LexicalCast (attention aux exceptions) :

    #include <boost/lexical_cast.hpp>
    #include <iostream>
    #include <string>
    int main(int argc, char* argv[])
    {

    std::string s="12.2";
    float f = boost::lexical_cast<float>(s);
    std::cout << "f = " << f << std::endl;
    }

  8. #8
    Invit�
    Invit�(e)
    Par d�faut
    Citation Envoy� par Swo�g
    ce que je voulais dire, c'est qu'il me semblait que m�me en C les fonction *toa ou ato* �taient pass�es obsol�tes et que d'autres fonctions les rempla�aient...

    de plus, si tu fait du C++, alors si tu m�rites les coups de fouet
    C++ et C sont des langages diff�rents, avec des optiques diff�rentes...

    Si des librairies existent en C++ alors utiliser leur version C est un non-sens, et surtout quand on parle de la SL... rien n'est pire qu'un code o� se m�le C et C++ �a aide pas � la lecture, et �a rel�ve du non suivi total des r�gles de coding...
    citation ->

    The C++ standard library incorporates the C standard library with some small modifications to make it work better with the C++ language. Another large part of the C++ library is based on the Standard Template Library (STL).
    le standard C++ est consitu� DE LA LIBRARIE C + la STL + iostream.
    j'avoue qu'il y a plusieur solution au probl�me identifi�, mais ma r�ponse fait quand m�me partie du standard.


+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [C#] Comment convertir une String en float ?
    Par DestinyWar45 dans le forum C#
    R�ponses: 7
    Dernier message: 08/10/2010, 04h19
  2. [C#] Convertir un string en float
    Par todier dans le forum C#
    R�ponses: 3
    Dernier message: 14/05/2007, 18h13
  3. convertir un string en float avec un format
    Par kisscool62 dans le forum C++/CLI
    R�ponses: 2
    Dernier message: 04/12/2006, 14h13
  4. convertir un string en float
    Par jayjay.f dans le forum AWT/Swing
    R�ponses: 9
    Dernier message: 17/11/2006, 18h24
  5. Convertir un String en Float
    Par alex75 dans le forum Langage
    R�ponses: 3
    Dernier message: 15/06/2006, 19h58

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