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

cs_mervat 90 Messages postés samedi 5 juin 2010Date d'inscription 6 mars 2015 Dernière intervention - 28 déc. 2010 à 15:01 - Dernière réponse : cs_mervat 90 Messages postés samedi 5 juin 2010Date d'inscription 6 mars 2015 Dernière intervention
- 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
cptpingu 3794 Messages postés dimanche 12 décembre 2004Date d'inscription 10 juin 2018 Dernière intervention - 28 déc. 2010 à 16:31
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

Merci cptpingu 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de cptpingu
cptpingu 3794 Messages postés dimanche 12 décembre 2004Date d'inscription 10 juin 2018 Dernière intervention - 28 déc. 2010 à 15:52
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
cs_mervat 90 Messages postés samedi 5 juin 2010Date d'inscription 6 mars 2015 Dernière intervention - 28 déc. 2010 à 16:23
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
cs_mervat 90 Messages postés samedi 5 juin 2010Date d'inscription 6 mars 2015 Dernière intervention - 28 déc. 2010 à 16:44
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.