Salut a tous,
j'en fait appel a vous apres de nombreuses recherches infructueuses sur le net.
comme du code sera plus parlant que des mots:
Pour les personnes qui ont deja teste ce genre de pratique, l'execution de ce code affichera:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 std::string s1("hello world"); std::string s2; std::istringstream iss(s1); iss >> s2; std::cout << s1 << std::endl; std::cout << s2 << std::endl;
Comme vous l'avez compris, j'aimerait inhiber le systeme de "tokenization" des istringstream afin de recuperer l'integralite de la chaine.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 hello world hello
Afin d'etre plus clair dans ma demande, je me sert des istringstream pour gerer une recuperation de parametres stockes sous forme de std::string (pour un fichier de conf), et j'utilise l'istringstream pour faire les conversions adequates. L'avantage etant de tirer partie des templates pour gerer n'importe quel type de base sans avoir a le gerer explicitement.
Sachant que dans tout les cas, le parametre que je souhaite recuperer, est considere comme etant en entier (donc pour une chaine je veux tout recuperer).
voila le contexte dans lequel c'est utilise:
Si quelqu'un possede une maniere alternative de gerer ce genre de probleme, qu'il n'hesite pas, ca m'interesse aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 template<typename T> void getVar(std::string &key, T &value) { std::map<std::string, std::string>::iterator i = _values.find(key); if (i != _values.end()) { std::istringstream iss; iss >> value; } }
Merci d'avance a ceux qui prendront le temps de se pencher sur mon probleme
Bonne soiree !
Partager