Bonjour.
J'écris un petit convertisseur en ligne de commandes qui prend comme paramètre une concaténation de nombre et d'unités, du genre "3.1415㎭" ou "88mph" (sans espaces, sinon ce serait 2 arguments et non un seul).
J'aimerai les séparer en 2 variables (de type double et std::string).
Tous les codes sur le nets demandent un séparateur, mais il n'y en a pas ici.
Voila ce que j'ai écrit, mais qui me m'affiche 2 tokens quand je lui demande de me donner l'unité (un vide, et l'autre correct).
Comment arriver à les séparer correctement et sans séparateur ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 boost::regex number("\\d+[\\.,]?\\d*"); std::string arg( argv[1] ); boost::sregex_token_iterator tokens(arg.begin(), arg.end(), number, -1); //0 devrait séléctionner le nombre, et -1 l'unité boost::sregex_token_iterator regend; for (; tokens != regend; ++tokens) std::cout << *tokens << std::endl;
Merci d'avance.
Partager