如何将字符串转换为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 ,你可以使用atoftoCharArray方法一起使用:

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)怎么样? 根据字符串的外观,当然可能需要修改格式字符串。

链接地址: http://www.djcxy.com/p/78597.html

上一篇: How do you convert a String to a float or int?

下一篇: C++ “was not declared in this scope” compile error and modification tips