การใช้งานจะขึ้นอยู่กับชนิดข้อมูลของตัวแปรของคุณ
หากพวกเขาint
จะเป็น%d
หรือ%i
ถ้าพวกเขาstring
จะเป็น%s
กระดาษห่อสำหรับ printf
คุณสามารถเปลี่ยนขีด จำกัด ตามความต้องการของคุณ
#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
}
ที่มา: https://playground.arduino.cc/Main/Printf
ตัวอย่างการใช้งาน:
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
ชั้นเรียนของกรอบ ไม่จำเป็นต้องใช้ไลบรารีหรือฟังก์ชั่นเพิ่มเติม
// 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: http://www.cplusplus.com/reference/cstdio/printf/
\n
เป็นลำดับ escape สำหรับการป้อนบรรทัด
Escape sequences ใช้เพื่อแทนอักขระพิเศษบางตัวภายในตัวอักษรสตริงและตัวอักษรตัวอักษร
แหล่งที่มา: http://en.cppreference.com/w/cpp/language/escape
[แก้ไข]
- ตามที่ @Juraj พูดถึงมันไม่สามารถใช้ได้กับโมดูล AVR ส่วนใหญ่ ดังนั้นฉันจึงเพิ่ม ESP8266 การพูดถึงและ wrapper printf สำหรับโมดูล AVR ทั่วไป