ポインターが指す文字列があり、その文字列を double 型の数値に変換して計算したいと考えています。ただし、文字列が astring
または achar*
であるかどうか、およびポインターが指す文字列に正しくアクセスしたかどうかはわかりません。以下は私のコードです:
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
10 桁程度の数字になります。誰でも助けてもらえますか?