problème avec boost::split
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:
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:
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:
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 ?