File tree 2 files changed +32
-0
lines changed
2 files changed +32
-0
lines changed Original file line number Diff line number Diff line change @@ -144,6 +144,15 @@ size_t Print::print(const Printable& x)
144
144
return x.printTo (*this );
145
145
}
146
146
147
+ size_t Print::printf (char const * fmt, ...)
148
+ {
149
+ va_list args;
150
+ va_start (args, fmt);
151
+ size_t const n = vprintf (fmt, args);
152
+ va_end (args);
153
+ return n;
154
+ }
155
+
147
156
size_t Print::println (void )
148
157
{
149
158
return write (" \r\n " );
@@ -233,6 +242,16 @@ size_t Print::println(const Printable& x)
233
242
return n;
234
243
}
235
244
245
+ size_t Print::printfln (char const * fmt, ...)
246
+ {
247
+ va_list args;
248
+ va_start (args, fmt);
249
+ size_t n = vprintf (fmt, args);
250
+ va_end (args);
251
+ n += println ();
252
+ return n;
253
+ }
254
+
236
255
// Private Methods /////////////////////////////////////////////////////////////
237
256
238
257
size_t Print::printNumber (unsigned long n, uint8_t base)
@@ -374,3 +393,13 @@ size_t Print::printFloat(double number, uint8_t digits)
374
393
375
394
return n;
376
395
}
396
+
397
+ size_t Print::vprintf (char const * fmt, va_list args)
398
+ {
399
+ static size_t const MSG_BUF_SIZE = 64 ;
400
+ char msg_buf[MSG_BUF_SIZE] = {0 };
401
+
402
+ int const length = vsnprintf (msg_buf, MSG_BUF_SIZE, fmt, args);
403
+
404
+ return write (msg_buf, length);
405
+ }
Original file line number Diff line number Diff line change @@ -36,6 +36,7 @@ class Print
36
36
size_t printNumber (unsigned long , uint8_t );
37
37
size_t printULLNumber (unsigned long long , uint8_t );
38
38
size_t printFloat (double , uint8_t );
39
+ size_t vprintf (char const * fmt, va_list args);
39
40
protected:
40
41
void setWriteError (int err = 1 ) { write_error = err; }
41
42
public:
@@ -67,6 +68,7 @@ class Print
67
68
size_t print (unsigned long long , int = DEC);
68
69
size_t print (double , int = 2 );
69
70
size_t print (const Printable&);
71
+ size_t printf (char const * fmt, ...);
70
72
71
73
size_t println (const __FlashStringHelper *);
72
74
size_t println (const String &s);
@@ -82,5 +84,6 @@ class Print
82
84
size_t println (double , int = 2 );
83
85
size_t println (const Printable&);
84
86
size_t println (void );
87
+ size_t printfln (char const * fmt, ...);
85
88
};
86
89
You can’t perform that action at this time.
0 commit comments