Diviser un string en C++

Résolu
prypiat_child Messages postés 1344 Date d'inscription   Statut Membre Dernière intervention   -  
prypiat_child Messages postés 1344 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Tout est dans le titre... J'ai une variable de type "string" qui contient deux "float" séparés d'un espace (je sais, c'est bizarre mais c'est comme ca et je n'ai pas le choix^^):

std::string monString("41.26594 2.75916");


Dans mon code, je souhaite récupérer ces deux valeurs pour les stocker dans deux float....

float premierNombre = 41.26594;
float deuxiemeNombre = 2.75916;


comment puis-je faire ?

J'ai entendu parler de fonctions "left, right, mid et instr" qui semblent avoir un rapport avec mon problème, mais à vrai dire je ne vois ni dans quelle bibliothèque elles apparaissent, ni comment les utiliser.

Je code sous Windows XP, avec Code::Blocks. Je voudrais toutefois que le code soit portable sans modification (ou le minimum) sous Linux.

"Il siiiiigne a la pointe de son épééééée, d'un W qui veut dire WORROOOOOO !!!!"

1 réponse

Char Snipeur Messages postés 9813 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Salut.
CodeBlock n'est pas un compilateur, ensuite, il est disponible sous Linux, et la meilleur solution est d'utiliser la STL qui est portable.
Je pense que dans ce cas précis, le mieux est d'utiliser les sstream.
#include <sstream>
std::sstream ss;
ss.str(monString);
double a,b;
ss>>a>>b;
1
prypiat_child Messages postés 1344 Date d'inscription   Statut Membre Dernière intervention   272
 
Merci ! Je teste ca.

(Oui, j'aurais du préciser plutôt que j'utilise mingw au lieu de parler de Code::Blocks.
L'idéal est d'ailleurs que ca compile avec g++ sous linux, et non pas mingw).
0
prypiat_child Messages postés 1344 Date d'inscription   Statut Membre Dernière intervention   272
 
Aucun souci. Merci beaucoup.

Je précise quand même que cela a fonctionné en mettant "stringstream" en lieu et place de "sstream".
0