Итак, вы передали std :: string (предположительно) в atoi, который принимает const char *. Попробуйте:
atoi(temp.c_str());
, о котором упоминалось ранее. Вместо этого вы можете использовать Boos lexical_cast :
std::string temp = "123";
try {
int foo = boost::lexical_cast<int>(temp);
} catch (boost::bad_lexical_cast e) {
//handle error here
}
Вы можете заключить try / catch в функцию шаблона, которая обрабатывает исключения, если у вас еще нет обработки исключений.