Еще одна задача, которая часто встречается на форумах - это вопрос по преобразованию строки в число. И не важно какого типа число: int, float, или другого. Важен сам факт преобразования, сама технология.
На самом деле если особо не забивать голову замарочками, типа "функция atoi не всегда работает корректно (что я проверил на практике, но не искал причины)", то вопрос решается очень легко.
Чтоб не тянуть я сразу приведу 2 функции преобразования строки в число типа int. Вы можете просто изменить тип данных и получите float, double...
Для начала нужно подключить заголовочный файл sstream
....
#include <sstream>
....
int str_to_int(string str){
stringstream sstr;
int int_val;
// Если строка пустая, то вернем 0
if (str.empty())
return 0;
sstr << str;
sstr >> int_val;
return int_val;
}
int str_to_int(char* str){
stringstream sstr;
int int_val;
// Если строка пустая, то вернем 0
if (strlen(str) == 0)
return 0;
sstr << str;
sstr >> int_val;
return int_val;
}
Так всё легко и просто. А для удобства я бы порекомендовал вынести все функции преобразования строк в отдельный класс и работать с ним.