Kullanım, değişkenlerinizin veri türüne bağlı olacaktır.
Onlar ise int
, olurdu %d
ya %i
da varsa string
, olurdu%s
Printf için sarıcı
Gereksinimlerinize göre limiti değiştirebilirsiniz
#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
}
Kaynak: https://playground.arduino.cc/Main/Printf
Kullanım örnekleri:
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
Serial
Çerçeve sınıfında yerleşik . Ek kütüphane veya fonksiyona gerek yok.
// 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);
Printf formatı referans sayfasındaki biçimlendirme ipuçları hakkında daha fazla bilgi: http://www.cplusplus.com/reference/cstdio/printf/
\n
Satır besleme için kaçış dizisidir.
Escape dizileri string değişmezleri ve karakter değişmezleri içindeki belirli özel karakterleri temsil etmek için kullanılır.
Kaynak: http://en.cppreference.com/w/cpp/language/escape
[EDIT]
- @Juraj'ın belirttiği gibi, AVR modüllerinin çoğunda mevcut değildir. Bu yüzden ESP8266 bahsini ve genel AVR modülleri için bir printf sargısını ekledim