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 :

un stringstream et un erase !


Sujet :

SL & STL C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut [Résolu] un stringstream et un erase !
    Bonjour

    Tout d'abord, je charge un fichier texte dans un buffer
    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
     
        //buffer contenant l'intégralité du fichier log
        std::stringstream buffer;
        [...]
        //---ouverture du fichier  / ios::in -> ecriture /  ios::binary -> fichier texte 
        //---charger dans le buffer
        ifstream fichier_log ("logtest.txt", ios::in|ios::binary);
        if ( fichier_log ) // ce test échoue si le fichier n'est pas ouvert 
       {
            // copier l'intégralité du fichier dans le buffer
            buffer << fichier_log.rdbuf();
            //std::cout << "Taille du buffer : " << buffer.str().size() << '\n';
            // nous n'avons plus besoin du fichier !
            fichier_log.close();
            //cout << buffer.str()<<endl;
        }
    Ensuite je voudrais supprimer une partie du texte du buffer , que j'ai copier préalablement dans une autre variable. Comme ca à la lecture suivante du buffer j'arrive directement au bon endroit, et donc je n'ai pas besoin de parcourir le buffer.

    Donc j'ai eu la bonne idée de faire un petit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    buffer.str().erase(buffer.str().begin(),buffer.str().begin()+300);
    Mais ca ne marche pas ... j'ai vu après que le .str() ne permet pas de modifié la chaîne contenu dans le buffer. Donc depuis je suis très triste car je n'ai pas de solution a mon petit problème

    Donc si vous avez une solution pour me rendre heureux n'hésitez pas merci d'avance!

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Mais non soit pas triste
    suffit de travailler sur la (copie de la) string envoyée par ton flux, et non sur le flux lui même.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string str( buffer.str(), 300 )

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2005
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 94
    Par défaut
    Merci beaucoup de m'avoir rendu ma joie et ma gaitée

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/01/2006, 23h14
  2. erase et delete d'un vector
    Par Jahjouh dans le forum SL & STL
    Réponses: 3
    Dernier message: 30/11/2005, 23h11
  3. Deplacer position flux stringstream
    Par Zenol dans le forum SL & STL
    Réponses: 4
    Dernier message: 27/09/2005, 18h56
  4. affecter une variable de type stringstream
    Par sorari dans le forum SL & STL
    Réponses: 3
    Dernier message: 24/03/2005, 11h14
  5. vector et erase()
    Par gytr2 dans le forum SL & STL
    Réponses: 6
    Dernier message: 02/03/2004, 12h45

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