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 7_1|
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
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; }
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 Chaine reçue 7_1| item 7 item 1
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 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Chaine reçue 7_1| item 7 item item
Partager