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 :

conversion de String en Num [FAQ]


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonsoir,

    Luc Hermitte vous dîtes
    Ceci dit, il faut toujours tester le résultat d'une lecture sur un flux.
    Ne pourrait-on pas dire qu' il faut toujours tester le flux avant de le soumettre à un résultat ?

    Cordialement.

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Aussi. Mais ce n'est qu'un cas particulier de toutes les opérations qui peuvent modifier quelque chose même en cas d'échec.

    La bonne méthode veut effectivement que l'on récupère un résultat intermédiaire ou incomplet dans un temporaire et que si toutes les étapes de l'opération à réaliser sont correctes, alors on peut valider les changements.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonsoir,

    J' apprécie tous vos messages, malheuresement aprés vérification, je me suis aperçu, que vos "modérateurs" à la mord moi le noued, me privaient des retours d' information.

    Il n'y a rien de "stratégique" ou peut être "tragique" dans les messages que j' envoie.

    Honte à tous ces petits commisaires politique, qui nous gâchent la vie !

    SVP Faîtes en sorte que je sois informé du retour des messages que j ' envoie.

    J' aime bien le C++, mais pas de manière unilatérale...

    Cordialement.

  4. #4
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    <HS>
    Euh ... Les modérateurs n'ont rien à voir avec le fait que l'on soit prévenu ou non si des messages sont publiés.
    Le site a visiblement eu un problème dans la nuit. Possiblement réglé vu que j'ai reçu plusieurs notifications dans la matiné de messages que j'avais déjà lus ou auxquels j'avais déjà répondu.

    Cordialement.
    </>
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonjour,

    Bizarre le comportement du site concernant les notifiications de réponses aux messages !

    Codialement.

  6. #6
    Membre averti
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Par défaut
    Bon, j'ai mis le tag [Resolu] à ce poste, laissez-le mourir en paix.

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonjour,

    Helvenir écrit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    template< typename T > 
     T StrToNum( const string& s ) { 
         string tmp; 
         // Un simple TRIM 
         string::size_type idx = s.find_last_not_of( ' ' ); 
         if ( idx != string::npos ) 
             tmp = s.substr( 0, idx + 1 ); 
     
         istringstream iss( tmp ); 
         T v; 
         if ( !(iss >> v ) || !iss.eof() ) throw runtime_error( "bad_cast" ); 
         return v; 
     }
    Je ne vois pas comment accéder à cette fonction ! Peut-être manque-t-il un argument pour spécifier le type T .

    Ceci dît votre méthode est trés judicieuse ( moins mauvaise que la mienne qui relève de la torture mentale ! )

    Je l'ai corrigé (la votre) sur mon c++, et me suis aperçu que sous linux "runtime_error" ne faisait plus partie de <exception> mais de <stdexcept>.

    Mais cela est un autre sujet !

    Cordialement.

  8. #8
    Membre expérimenté
    Avatar de David Fleury
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 253
    Par défaut
    LH : J'aime bien ton verbe "imbuer"

    DJ:
    sauf erreur (j'ai pas de compilo sous la main)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       double valeur = StrToNum< double >( "3.14159" );
    Assiobal: Désolé d'avoir "polluer" ton poste. En espérant que tu aies trouvé la réponse à ta question parmis tous ces codes.

  9. #9
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonsoir,

    Hylvenir

    vous dîtes
    Je n' ai pas le compilateur sous la main
    Et bien assurez-vous de disposer du bon compilateur, pour vous apercevoir que votre code est bogué.

    Selon votre code , il serait possible, de convertir une chaîne de caractères sans se soucier du type attendu...

    Vous rêvez !

    Cordialement.

  10. #10
    Membre expérimenté
    Avatar de David Fleury
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 253
    Par défaut
    Puisqu'il faut tout faire...

    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
     
    #include <iostream>
    #include <sstream>
    using namespace std;
     
    template< typename T >
    T StrToNum( const string& s )
    {
      istringstream iss( s );
      T t;
      iss >> t;
      return t;
    }
     
    int main()
    {
      cout << StrToNum< double >( "3.141592" ) << endl;
      cout << StrToNum< int >( "123456" ) << endl;
    }

  11. #11
    Membre averti
    Inscrit en
    Février 2004
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 21
    Par défaut
    Hylvenir,

    pas de problème pour la pollution. Juste que je vois mon innocent poste devenir un champs de bataille acharné.
    Je ne critique pas, je trouve ça "marrant".

  12. #12
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Bonsoir,

    Hylvenir, J'ai enfin saisi le génie de votre StrToNum.

    Malgré tout il me semble que StrToNum<int>(" - 25 " ) echoue.

    Le code du forum ne permet pas de représenter fidèlement les messages envoyés.

    Vous voyez - 25 là où j' ai ecris "espace espace - espace espace espace 25 espace " .


    Ma version "torturée" accepte .

    C'est vrai que cela devient "marrant" !

    Cordialement.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Conversion List -> String
    Par Bayard dans le forum Général Python
    Réponses: 1
    Dernier message: 27/11/2005, 21h50
  2. Conversion byte [] -> String
    Par MiJack dans le forum Langage
    Réponses: 3
    Dernier message: 20/10/2005, 18h16
  3. [C#] Conversion System.String en System.Drawing.Color
    Par Silex dans le forum Windows Forms
    Réponses: 6
    Dernier message: 27/04/2005, 08h21
  4. Réponses: 3
    Dernier message: 26/05/2004, 23h03
  5. Conversions de String à Integer
    Par Rank dans le forum Langage
    Réponses: 5
    Dernier message: 06/08/2003, 16h30

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