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 :

Conversion argument en double


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 39
    Par défaut Conversion argument en double
    Bonjour,

    je souhaite convertir un argument passé au main en double.
    J'utilise le code suivant pour faire la conversion stringToDouble

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    double String2Double(const std::string& what)
    {
    std::istringstream instr(what);
    double val;
    instr >> val;
    return (val);
    }
    ==> les tests sur ce code fonctionnent, la fonction est bonne

    Maintenant je veux faire la conversion suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    std::string argument1 = argv[1] ;  // conversion char* en string
    double range_gyro = String2Double( argument1 );
    ==> et là j'ai une erreur pour l'appel a ma fonction String2Double :

    Error 2 error LNK2019: unresolved external symbol "double __cdecl mems::String2Double(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?String2Double@mems@@YANABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function _main main.obj

    Je ne parviens pas à résoudre le problème ...

    Merci pour votre aide.

  2. #2
    Membre éclairé
    Avatar de Le Farfadet Spatial
    Homme Profil pro
    En cours de précision…
    Inscrit en
    Avril 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En cours de précision…

    Informations forums :
    Inscription : Avril 2008
    Messages : 190
    Par défaut
    Salut à tous !

    Là, c'est un exemple typique où j'utiliserais plutôt atof :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #include <iostream>
    #include <cstd>
     
    int main (int argc, char** argv) {
      const double range_gyro = std::atof(argv[1]);
      std::cout << range_gyro << std::endl;
    }  // main
    C'est propre, lisible et sécurisé. Pourquoi s'embêter plus ?

    À bientôt.

    Le Farfadet Spatial

  3. #3
    Membre averti
    Inscrit en
    Mars 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 39
    Par défaut
    Formidable !
    Je ne connaissais pas cette fonction !
    Je te remercie beaucoup

    Juste une petite rectification, mon compilateur ne connaissait pas #include <cstd> ... j'ai mis #include <cstdarg> à la place, et ça fonctionne très bien !

    ++

  4. #4
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Salut,

    c'est <cstdlib> qu'il faudrait inclure et non <cstdarg>. Enfin, tout ça est déjà inclus dans <iostream> (en tout cas sur mon systême).

  5. #5
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Sinon, il me semble que boost::lexical_cast gère ça. A vérifier.

  6. #6
    Membre éclairé
    Avatar de Le Farfadet Spatial
    Homme Profil pro
    En cours de précision…
    Inscrit en
    Avril 2008
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En cours de précision…

    Informations forums :
    Inscription : Avril 2008
    Messages : 190
    Par défaut
    Salut à tous !

    Je confirme : c'est cstdlib, toutes mes excuses pour avoir mangé un bout. Ne mets pas cstdarg, ce n'est pas très standard.

    À bientôt.

    Le Farfadet Spatial

Discussions similaires

  1. [Conversion]int to double
    Par frouge dans le forum Général Java
    Réponses: 6
    Dernier message: 03/02/2012, 09h34
  2. Conversion de type double en texte
    Par CoachMac dans le forum C
    Réponses: 17
    Dernier message: 14/10/2006, 19h29
  3. [VB.NET]Comment obtenir conversion exacte Single>Double?
    Par Misterburma dans le forum VB.NET
    Réponses: 9
    Dernier message: 09/02/2006, 22h24
  4. Problème conversion float vers double
    Par jhenaff dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 27/01/2006, 10h39
  5. conversion string en double
    Par zmatz dans le forum SL & STL
    Réponses: 2
    Dernier message: 14/10/2005, 22h46

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