Sprintf avec % dans une chaîne

Bonjour à tous,
je cherche depuis un bon moment comment insérer le % dans sprintf() pour afficher le taux d'humidité ?`

void setup()
{

   Serial.begin(9600);
   Serial.println();

   float humidity = 68.458;
   float temperature = -10.25;
   char buffer_1[10];
   char buffer_2[10];
   dtostrf(temperature, 4, 2, buffer_1);
   dtostrf(humidity, 4, 2, buffer_2);
   Serial.println(buffer_1);
   Serial.println(buffer_2);


   char buffer_3[80];
   sprintf(buffer_3, "La tempèrature est de %s°C et l'humidité est de %s (%)" , buffer_1, buffer_2);
   Serial.println(buffer_3);

}`

A froid comme ça, je dirais qu'il faut l'échapper : \% ?

et non ça fonctionne pas !

Avec %%

Sans non plus regarder %%, marche pas non plus ?, sinon un truc moche %s avec "%" comme valeur de remplacement.

Ben si :
https://cplusplus.com/reference/cstdio/printf/

A % followed by another % character will write a single % to the stream

merci lesept, ta solution fonctionne

  sprintf(buffer_3, "La tempèrature est de %s°C et l'humidité est de %s%% " , buffer_1, buffer_2);

C'est celle de @hbachetti ...

oups, merci quand même et merci à hbachetti

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.