cs_alncool
Messages postés16Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention12 juillet 2005
-
12 mai 2004 à 14:54
cs_djl
Messages postés3011Date d'inscriptionjeudi 26 septembre 2002StatutMembreDernière intervention27 novembre 2004
-
12 mai 2004 à 22:47
En fait je dispose d'une classe avec trois attributs de type string. J'ai réalisé une surcharge de l'opérateur << pour pouvoir écrire dans un fichier texte le contenu de plusieurs objets (biensur avec une petite mise en forme dans le genre un séparateur tab entre les différents attributs et ensuite un retour chariot après le dernier attribut de chaque objet inscrit dans ce fichier texte. Mais voila le problème: j'ai codé une surcharge de l'opérateur>> pour pouvoir lire à partir du fichier et me constituer une liste d'objet mais le problème c'est que je ne sais pas comment il faut faire pour que les espaces des string soient considéré comme des séparateur de variable. Je sais pas si je me suis bien exprimé mais en gros si dans une variable string j'ai "Salut ca va?" alors "salut" est considéré comme étant l'attribut1, "ca" comme l'attribut2 et "va?" comme l'attribut3.
Merci d'avance. :)
Règle du bon codeur:
1) faire compliquer quand on peut faire simple
2) taper sur son PC quand ça ne marche pas
3) profiter de ses erreurs pour les recopiers dans un autre programme
4) je crois qu'avec tout ça t'arriveras un jour à faire quelque chose.
cs_alncool
Messages postés16Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention12 juillet 2005 12 mai 2004 à 14:56
Je rectifie :
je ne sais pas comment il faut faire pour que les espaces des string NE soient PAS considéré comme des séparateur de variable (mais plutôt la tabulation et le retour chariot).
Règle du bon codeur:
1) faire compliquer quand on peut faire simple
2) taper sur son PC quand ça ne marche pas
3) profiter de ses erreurs pour les recopiers dans un autre programme
4) je crois qu'avec tout ça t'arriveras un jour à faire quelque chose.
Hylvenir
Messages postés364Date d'inscriptionmercredi 11 février 2004StatutMembreDernière intervention 5 octobre 20062 12 mai 2004 à 22:18
Ce que tu peux faire dans ton opérateur >>
lire une ligne complète dans une std::string
par std::getline( is, line );
qui va te lire toute la ligne contenant la description de ton objet.
Ensuite tu fais un std::istring_stream iss( line );
while( std::getline( iss, col, '\n' ) )
cout << '[' << col << ']' << endl;
qui va te lire tous les éléments de ta ligne en utilisant la tabulation comme séparateur de champ.