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