Utilice las transmisiones en C++.
std::string plop("123");
std::stringstream str(plop);
int x;
str >> x;
/* Lets not forget to error checking */
if (!str)
{
// The conversion failed.
// Need to do something here.
// Maybe throw an exception
}
PS. Este principio básico es cómo funciona la biblioteca de impulso lexical_cast<>
.
Mi método favorito es el impulso lexical_cast<>
#include <boost/lexical_cast.hpp>
int x = boost::lexical_cast<int>("123");
Proporciona un método para convertir entre una cadena y formatos de número y de regreso. Debajo utiliza una secuencia de cadenas para que todo lo que se pueda agrupar en una secuencia y luego desasignar de una secuencia (Eche un vistazo a los operadores >> y < <).
¿Qué tal algunos de los ejemplos de los siguientes: http://www.codeproject.com/KB/recipes/Tokenizer.aspx Son muy eficientes y algo elegantes. –