我不知道这段代码有什么问题:
ArrayList
我期待这些结果:
#include<stdlib.h>
void setup() {
Serial.begin(115200);
char dataH[5];
char dataC[5];
char dataF[5];
float h = 56.00;
float c = 31.50;
float f = 88.70;
dtostrf(h,5,2,dataH);
dtostrf(c,5,2,dataC);
dtostrf(f,5,2,dataF);
Serial.println(dataH);
Serial.println(dataC);
Serial.println(dataF);
}
void loop() {
// put your main code here, to run repeatedly:
}
相反,这就是我得到的:
56.00
31.50
88.70
前两行是空白的(我用文本写入空白,否则它将被stackoverflow跳过。:(
答案 0 :(得分:4)
您应该将字符数组声明为
char dataH[6];
char dataC[6];
char dataF[6];
这样他们就有空间在末尾存储'\0'
答案 1 :(得分:0)
好的,这是我的错。在查看doc之后,我需要创建缓冲区。
char buff[5];
dataH = dtostrf(h,5,2,buff);
我认为buff会立即被垃圾收集,如果不在下一个语句中消费就会消失。