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