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 :

[debutant] string to int


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut [debutant] string to int
    Je decide de corriger ma manie d'utiliser les char*, un peu honteux, j'ouvre la FAQ, nickel, je parse mon fichier, nickel, je convertit mes string en in.... c'est quoi ce bordel... faut passer par l'intermediaire d'un char* pour faire ca!!!

    http://c.developpez.com/faq/cpp/?pag...RINGS_strtonum

    Dites moi que je reve... ou mettez un genou a terre face a la toute puissance de la chaine de caractere.

  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 es sûr d'avoir bien lu la C++ ?
    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
    Membre Expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992

  4. #4
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut
    Bah voila ce que dit la FAQ C++

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // créer un flux à partir de la chaîne à convertir
        std::istringstream iss( "10" );
        // convertir en un int
        int nombre;
        iss >> nombre; // nombre vaut 10
    Donc si je souhaite convertir mon string en int il me faut donc faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    string str = "10"
     
    // créer un flux à partir de la chaîne à convertir
        std::istringstream iss( str.c_str() );
        // convertir en un int
        int nombre;
        iss >> nombre; // nombre vaut 10
    Dites moi que j'ai loupé un truc et qu'il me suffit de faire une merde dans le genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int entier
    string str = "10";
    entier << str

  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
    Dites moi que j'ai loupé un truc et qu'il me suffit de faire une merde dans le genre
    Non, tu n'as rien loupé.

    Mais qu'est-ce qui te gêne avec le code donné dans la FAQ ? Où vois-tu un char* ?

  6. #6
    Membre confirmé Avatar de harsh
    Inscrit en
    Février 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 229
    Par défaut
    Dans la creation du flux std::istringsrteam ("10") ... mais je vois plus loin effectivement que l'on peut y mettre un sting a la place...

    Je suis surpris par la lourdeur de la manipulation juste pour une conversion, je m'etonne de devoir faire moi meme une methode de 2 ligne qui prenne un string et me retourne un int

    EDIT: "10" est effectivement un string et non un char* d'ou ma confusion (peut etre serait il judicieux de nous prendre par la main en indiquant string str = "10"; dans la FAQ ), n'en reste pas moi que je trouve ca un peut lourd en comparaison au fonctions de conversion du C, des raisons?

  7. #7
    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
    pour information, il existe un constructeur de string qui permet de transformer automatiquement un char* en std::string pour éviter d'avoir à le faire à la main à chaque fois...
    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)

  8. #8
    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 harsh
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    string str = "10"
     
    // créer un flux à partir de la chaîne à convertir
        std::istringstream iss( str.c_str() );
        // convertir en un int
        int nombre;
        iss >> nombre; // nombre vaut 10


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    string str = "10"
     
    // créer un flux à partir de la chaîne à convertir
        std::istringstream iss( str );
        // convertir en un int
        int nombre;
        iss >> nombre; // nombre vaut 10
    te donne une erreur de compilation !?
    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)

Discussions similaires

  1. [Debutant] Manipuler les int dans un string
    Par mr_samurai dans le forum Débuter
    Réponses: 5
    Dernier message: 18/01/2008, 20h00
  2. [debutant] transtypage string en int
    Par melvar dans le forum Langage
    Réponses: 3
    Dernier message: 08/03/2006, 16h08
  3. [Debutant]Transformer string en int
    Par htaou dans le forum SL & STL
    Réponses: 7
    Dernier message: 09/09/2005, 21h28
  4. [Débutant][String] Remplacez les caractères speciaux
    Par paf15 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 27/04/2004, 22h39
  5. [Débutant][Math] float int arondi bizarre
    Par yolepro dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 27/04/2004, 10h01

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