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 et manipulation de caracteres


Sujet :

SL & STL C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    b4u
    b4u est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut stringstream et manipulation de caracteres
    Bonsoir,
    j'essaye en vain d'écraser le dernier caractère d'un objet de type stringstream...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	stringstream ss;
    	ss << "toto";
    	cout << ss.str() << endl;
    	ss.str().erase(ss.str().size() - 1);
    	cout << ss.str() << endl;
    En fait, je remarque que n'importe quelle modification de ss.str() échoue.
    De quelle manière procéder? Merci d'avance.

  2. #2
    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
    Je ne suis pas sur, mais apparemment ss.str() renvoie une copie de la chaine qu'il contient, et non pas une référence, ce qui sera assez bête, car la string récupérée se détruirait avec le stringstream...
    Donc essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string tmp = ss.str();
    tmp.erase(ss.str().size() - 1);

  3. #3
    b4u
    b4u est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut
    Citation Envoyé par Alp
    Je ne suis pas sur, mais apparemment ss.str() renvoie une copie de la chaine qu'il contient, et non pas une référence, ce qui sera assez bête, car la string récupérée se détruirait avec le stringstream...
    En effet, je viens de vérifier, et tu as raison.
    Donc essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    string tmp = ss.str();
    tmp.erase(ss.str().size() - 1);
    ben le probleme est que j'ai besoin du stringstream modifié pour pouvoir y injecter du texte supplémentaire et m'en resservir par la suite.
    Je vais quand meme essayer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    string tmp = ss.str();
    tmp.erase(tmp.size() - 1);
    ss.str(tmp);
    Mais y a pas une solution sans passer par une chaine temporaire?

    [Edit: en tout cas ca marche, merci je passe en résolu]

  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
    En une ligne, mais avec plus de temporaires générés :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ss.str(ss.str().substr(0, ss.str().size() - 1));

  5. #5
    b4u
    b4u est déconnecté
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 87
    Par défaut
    La classe, merci beaucoup

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

Discussions similaires

  1. manipulation chaine caracteres
    Par hamma2 dans le forum C#
    Réponses: 3
    Dernier message: 11/04/2010, 12h28
  2. Manipulation de caracteres
    Par X-plode dans le forum Langage
    Réponses: 5
    Dernier message: 21/03/2007, 16h21
  3. Manipuler chaine caractere
    Par BATiViR dans le forum C++
    Réponses: 24
    Dernier message: 23/02/2007, 13h44
  4. Manipulation des caractères avec KSH
    Par apocalypse dans le forum Linux
    Réponses: 2
    Dernier message: 30/04/2006, 22h41
  5. debutant asp manipulation chaine de caractere
    Par MaxiMax dans le forum ASP
    Réponses: 3
    Dernier message: 12/08/2005, 15h59

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