【发布时间】:2013-06-30 18:43:56
【问题描述】:
我有一个指针指向的字符串,我想将该字符串转换为双精度类型的数字进行计算。但是,我不确定我的字符串是string 还是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'。
标签: c++ string type-conversion