Re: Formátovaný tisk bylo Re: sprintf - co delam blbe?

Jan Waclawek konfera na efton.sk
Úterý Duben 16 23:36:48 CEST 2024


Ten program sa Vam formatovanim zmrsil
https://list.hw.cz/pipermail/hw-list/2024-April/571392.html , dovolil som
si ho rekonstruovat:

String Fultoa(uint32_t val,uint8_t length,uint8_t decimal) {
   char buf[11];
   uint32_t k=100;
   for (uint8_t i = 3;i < length; i++) k*=10;
   ultoa(val+k, buf, 10);
   for (uint8_t i = 0; i < length - decimal - 2; i++) {
      if (buf[i + 1] == '0')
         buf[i] = ' ';
      else
         buf[i] = buf[i + 1];
   }
   buf[length - decimal - 2] = buf[length - decimal - 1];
   buf[length - decimal - 1] = '.';
   return buf;
}

Serial.println(Fultoa(1,10,3));
Serial.println(Fultoa(987654321,10,2));
Serial.println(Fultoa(21,3,1));


Nepouzivam C++. V C by to fungovalo len nahodou kvoli lokalnemu buffru.

Miestni C++ guruovia prosim vysvetlite ako to instancovanie/deinstancovanie
objektu triedy String tu funguje.

wek



Další informace o konferenci Hw-list