#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
相反,這是我得到的:
blank
blank
88.70
前兩行是空白的(我寫的文本為空白,否則將被stackoverflow跳過。
解決方法:
您應該將字符數組聲明為
char dataH[6];
char dataC[6];
char dataF[6];
這樣他們就可以'\0'在最后存儲空間
