Arduino的dtostrf


#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'在最后存储空间


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM