Lire chaîne ligne par ligne [Résolu]

Messages postés
90
Date d'inscription
samedi 5 juin 2010
Dernière intervention
6 mars 2015
- - Dernière réponse : cs_mervat
Messages postés
90
Date d'inscription
samedi 5 juin 2010
Dernière intervention
6 mars 2015
- 28 déc. 2010 à 16:44
bonjour,
je veux lire une chaîne (std::string) ligne par ligne,
j'ai pas pu le faire avec std::getline car ça marche avec les fichiers (std::ifstream)
pourrais-je convertir un string to stream, si non qu'est ce que je pourrais faire pour lire ma chaîne ligne par ligne.
j'espère avoir votre aide.
merci.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3831
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
30 janvier 2019
162
3
Merci
Attention ne confond pas:
- stringstream: Accès en lecture et écriture
- ostringstream: Accès en écriture
- istringstream: Accès en lecture

#include 
#include <sstream>

int main()
{
  const std::string ch = "test\ntoto\ntiti\npouet";
  std::stringstream ss;
  ss << ch;

  std::string line;
  while (std::getline(ss, line, '\n'))
    std::cout << line << std::endl;

  return 0;
}


________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 121 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cptpingu
Messages postés
3831
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
30 janvier 2019
162
0
Merci
Tu met ta chaine dans un flux, tout simplement :)
(Tu fais passer ton std::string dans un std::ostringstream). A noter que getline fonctionne avec tous les flux, pas seulement les fichiers.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Commenter la réponse de cptpingu
Messages postés
90
Date d'inscription
samedi 5 juin 2010
Dernière intervention
6 mars 2015
0
Merci
j'ai fais comme ça:
std::string ch;
std::ostringstream ss;
ss << ch.c_str();
while (std::getline(ss,ligne))
.....

j'ai eu l'erreur suivante : Impossible de trouver une correspondance pour 'std::getline<_Elem,_Traits,_Alloc>(std::ostringstream,std::string)'
Commenter la réponse de cs_mervat
Messages postés
90
Date d'inscription
samedi 5 juin 2010
Dernière intervention
6 mars 2015
0
Merci
ah d'accord, j'ai bien compris,
merci de m'avoir aidé et de m'avoir expliqué, et merci aussi pour la rapidité de votre réponse.
Commenter la réponse de cs_mervat

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.