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 :

stringstream utilisé plusieurs fois de suite


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par défaut stringstream utilisé plusieurs fois de suite
    Bonjour,

    Est ce quelqu'un sait pourquoi lorsque j'utilise un stringstream pour convertir un string en double (ou int), ca marche bien la première fois, mais ensuite ca foire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    string strX = "262";
    string strY = "285";
    double x, y;
     
    ss << strX;
    ss >> x;
     
    ss << strY;
    ss >> y;
     
    cout << x << endl;
    cout << y << endl;
    affiche :

    La lecture n'est pas destructrice du contenu ? Il faut appeler clear() ou qqchose dans le genre à chaque fois ?

    Apparement oui. Ce monologue m'aura été très utile

  2. #2
    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
    Attention, clear ne fait que remettre à zéro les flags d'erreur du flux (qui sont mis car à chaque extraction tu en atteint la fin). Pour vider le flux, c'est ss.str("").

    Moi je ferais plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ss.str(strX);
    ss >> x;
     
    ss.str(strY);
    ss >> y;
    Par contre je ne sais pas si l'appel à str() replace aussi le curseur de lecture au début.

  3. #3
    Membre émérite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par défaut
    ok, mais ca marche pas quand le fais comme ca, tandis que quand je fais clear ca marche

  4. #4
    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
    Ok, donc l'appel à str() ne replace pas le curseur de lecteur au début.

  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
    Dans ce cas il suffit juste de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ss << strX;
    ss >> x;
     
    ss.str("");
     
    ss << strY;
    ss >> y;
    je pense.

  6. #6
    Membre émérite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par défaut
    mmmm
    moi je pense que ca marche pas
    j'avais essayé un truc dans le genre.
    pour l'instant clear() suffit pour ce que je fais

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 06/01/2015, 12h43
  2. Réponses: 2
    Dernier message: 17/10/2013, 18h27
  3. Socket: Utilisation d'un port plusieurs fois de suite
    Par MrEddy dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 29/10/2012, 20h51
  4. Réponses: 3
    Dernier message: 21/06/2010, 22h17
  5. [ADOQuery] Parametre utilisé plusieurs fois
    Par gibet_b dans le forum Bases de données
    Réponses: 5
    Dernier message: 30/09/2004, 10h57

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