Bonjour,

J'utilise boost::split pour récupérer des informations à partir d'une chaîne de caractères. Cette chaîne de caractères suit la structure suivante :

J'effectue le traitement de cette chaîne dans la méthode suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
void traiteChaine(std::string str_chaine) {
	std::cout << "Chaine reçue " << str_chaine << std::endl;
	// traitement de la chaine reçue
	//vecteur des sous chaines reçues
	std::vector<std::string> strs;
	//création de la chaîne de délimiteurs
	char tabDelim[2] = {'_', '|'};
	std::string delim = tabDelim;
	boost::split(strs, str_chaine,boost::is_any_of(delim));
	for(int i = 0 ; i < strs.size()-1; i++)
		std::cout << " item " << strs[i] << std::endl;
}
Pourtant, en fonction des exécutions de mon programme, quelques fois, j'ai le résultat voulu : un affichage du type
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Chaine reçue 7_1|
 item 7
 item 1
Mais quelques fois, le split ne se passe pas bien, et j'ai l'affichage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Chaine reçue 7_1|
 item 7
 item 
 item
Y aurait-il un rapport entre cette erreur et le "ç" de reçu qui s'affiche différemment dans ces deux exécutions ? Ou serait ce un problème dû à boost::split ?