convertir la chaîne de pointeur en entier

J’essaie de convertir treePtr->item.getInvest() qui contient une chaîne en un entier. Est-ce possible?

     #include  // ... ssortingng str(*(treePtr->item.getInvest())); // assuming getInvest() returns ptr issortingngstream ss(str); int the_number; ss >> the_number; 

    si vous avez access à booster:

     int number= boost::lexical_cast(treePtr->item.getInvest()); 

    Mieux vaut utiliser strtol() que de strtol() avec les stream.

     const char* s = treePtr->item.getInvest(); const char* pos; long the_number = ::strtol(s,&pos,10); if(pos!=s) // the_number is valid 

    strtol() est un meilleur choix car il vous indique si le nombre retourné est valide ou non. De plus, cela évite d’allouer sur le tas, donc il fonctionnera mieux. Si vous voulez juste un nombre, et que vous êtes heureux d’accepter un zéro au lieu d’une erreur, utilisez simplement atol() (qui est juste un fin wrapper autour de strtol qui renvoie zéro en cas d’erreur).