Użycie będzie zależeć od typu danych zmiennych.
Jeśli tak int
, to byłoby %d
lub %i
Jeśli tak string
, byłoby%s
Opakowanie do printf
Możesz zmienić limit w zależności od swoich wymagań
#include <stdarg.h>
void p(char *fmt, ... ){
char buf[128]; // resulting string limited to 128 chars
va_list args;
va_start (args, fmt );
vsnprintf(buf, 128, fmt, args);
va_end (args);
Serial.print(buf); // Output result to Serial
}
Źródło: https://playground.arduino.cc/Main/Printf
Przykłady użycia:
p("Var 1:%s\nVar 2:%s\nVar 3:%s\n", var1, var2, var3); // strings
p("Var 1:%d\nVar 2:%d\nVar 3:%d\n", var1, var2, var3); // numbers
ESP8266
Jest wbudowany w Serial
klasę frameworka. Nie potrzeba dodatkowej biblioteki ani funkcji.
// strings
Serial.printf("Var 1:%s\nVar 2:%s\nVar 3:%s\n", var1, var2, var3);
// numbers
Serial.printf("Var 1:%d\nVar 2:%d\nVar 3:%d\n", var1, var2, var3);
Więcej informacji na temat wskazówek dotyczących formatowania na stronie odniesienia do formatu printf: http://www.cplusplus.com/reference/cstdio/printf/
\n
jest sekwencją zmiany znaczenia dla wstawiania wiersza.
Sekwencje specjalne są używane do reprezentowania niektórych znaków specjalnych w literałach ciągów i literałów znakowych.
Źródło: http://en.cppreference.com/w/cpp/language/escape
[EDYCJA]
- Jak wspomniał @Juraj, nie jest dostępny w większości modułów AVR. Dodałem więc wzmiankę o ESP8266 i opakowanie printf dla popularnych modułów AVR