Формирование строки
- Войдите на сайт для отправки комментариев
Пт, 27/06/2014 - 21:31
int one = 1;
float two = 26.7;
double ther = 26.700l;
char str[40];
void setup()
{
Serial.begin(9600);
snprintf(str, sizeof(str), "MG: X=%6d; Y=%6d; Z=%6d;", one, two, ther);
Serial.println(str);
}
void loop()
{
while(1);
}
этот код выдает
MG: X= 1; Y=-26214; Z= 16853;
как сделать что бы обрабатывался float и double нормально, и перед переменными всегда пробелы выставляет как их убрать?
char dtostrf (double [значение], signed char [длина включая точку и минус], unsigned char [после запятой] , char [строка])
функция также возвращает указатель на строку.
насколько я понял мой код должен быть такой
double one = 17.123; char one_c[10]; char str[80]; void setup() { Serial.begin(9600); dtostrf(one, 5, 2, one_c); snprintf(str, sizeof(str), "X=%6d", one_c); Serial.println(str); } void loop() { while(1); }и выдает это чудо это: X= 282
double one = 17.123; char one_c[10]; char str[80]; void setup() { Serial.begin(9600); dtostrf(one, 6, 3, one_c); snprintf(str, sizeof(str), "X=%s", one_c); Serial.println(str); } void loop() { while(1); }