Séparer une chaine sans token
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).
Code:
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; |
Comment arriver à les séparer correctement et sans séparateur ?
Merci d'avance.