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
- 28 déc. 2010 à 15:01 - Dernière réponse :
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
3830
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
19 novembre 2018
- 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é 88 internautes ce mois-ci

Commenter la réponse de cptpingu
Messages postés
3830
Date d'inscription
dimanche 12 décembre 2004
Dernière intervention
19 novembre 2018
- 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
Messages postés
90
Date d'inscription
samedi 5 juin 2010
Dernière intervention
6 mars 2015
- 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
Messages postés
90
Date d'inscription
samedi 5 juin 2010
Dernière intervention
6 mars 2015
- 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.