У меня есть строка, указанная указателем, и я хочу преобразовать эту строку в число двойного типа для вычисления. Тем не менее, я не уверен, является ли моя строка string
или char*
и правильно ли я получил строку, указанную указателем. Ниже мой код:Преобразование строки/char для двойного и последующего вычисления с двойным
void chatterCallback(const std_msgs::String::ConstPtr& msg)
{
ROS_INFO("I heard: [%s]", msg->data.c_str());
std::string str = msg->data;
ROS_INFO("I heard: [%s]", str.c_str());
double fmsg = std::atof(str.c_str());
ROS_INFO("I am making calculation: [%d]", fmsg+1.0);
}
Тип double
не может быть распознан, и, таким образом, fmsg+1.0
результат в десять значных чисел или около того. Может ли кто-нибудь помочь?
У вас есть «% d» вместо «% lf». –