如何将字符串转换为float或int?
在一个Arduino程序中,我正在使用GPS将坐标通过USB发送到arduino。 正因为如此,传入的坐标存储为字符串。 有什么办法将GPS坐标转换为float或int吗?
我尝试过int gpslong = atoi(curLongitude)
和float gpslong = atof(curLongitude)
,但它们都会导致Arduino发出错误:
error: cannot convert 'String' to 'const char*' for argument '1' to 'int atoi(const char*)'
有没有人有什么建议?
只需在String
对象上调用toInt
(例如curLongitude.toInt()
),即可从String
获取int
。
如果你想要一个float
,你可以使用atof
和toCharArray
方法一起使用:
char floatbuf[32]; // make this at least big enough for the whole string
curLongitude.toCharArray(floatbuf, sizeof(floatbuf));
float f = atof(floatbuf);
c_str()
会给你字符串缓冲区的const char *指针。
。
所以你可以使用你的转换函数:
int gpslong = atoi(curLongitude.c_str())
float gpslong = atof(curLongitude.c_str())
sscanf(curLongitude, "%i", &gpslong)
或sscanf(curLongitude, "%f", &gpslong)
怎么样? 根据字符串的外观,当然可能需要修改格式字符串。
上一篇: How do you convert a String to a float or int?
下一篇: C++ “was not declared in this scope” compile error and modification tips