snprintf : problème de typage

Bonjour,

Quelqu’un pourrait-il m’expliquer le problème de formatage avec le code ci-dessous ?

String wifiList = "[";
        WiFi.disconnect();
        int n = WiFi.scanNetworks();
        if (n > 0) {
          for (int i = 0; i < n; ++i) {
            wifiList += "\"";
            wifiList += WiFi.SSID(i);
            wifiList += "\"";
            if ((i + 1) < n) wifiList += ",";
            delay(10);
          }
        }
        wifiList += "]";  
        Serial.println(wifiList);
              
        snprintf(ret, sizeof(ret), "{\"action\": \"wifiRefresh\", \"status\": \"success\", \"list\": %s }", wifiList);
        Serial.println(ret);

La première sortie renvoie : [“Slayess”]
La deuxième renvoie : {“action”: “wifiRefresh”, “status”: “success”, “list”: D;⸮? }

Merci par avance à celui qui pourra m’éclairer

wifiList est une String avec un S majuscule.
%s c'est pour afficher les string, avec un s minuscule.

Il te faut transformer l'une en l'autre :

snprintf(ret, sizeof(ret), "{\"action\": \"wifiRefresh\", \"status\": \"success\", \"list\": %s }", wifiList.c_str());

Arf si simple quand on sait .... merci bcp :wink:

On est là pour apprendre...