Format Buffer is a very lightweight header only library to write a format string to a buffer. It only supports the most basic format specifiers and floating point formats are omitted on purpose with the exception of hexadecimal binary scientific notation to keep things simple.
A format specifier follows this prototype: '%[flags][width]specifier'
| Specifier |
Description |
| d |
Signed Decimal Integer |
| u |
Unsigned Decimal Integer |
| x |
Integer in Hexadecimal Format |
| b |
Integer in Binary Format |
| c |
Single Character |
| s |
String of Characters (null-terminated) |
| a |
Floating Point in Hexadecimal Floating Point Notation |
| % |
The '%' Character |
| Flags |
Description |
| 0 |
Changes the default padding character from space to zero. |
| Width |
Description |
| (number) |
The minimum number of characters to be printed. |
// prints "2136"
FormatBuffer<1024> buf{"%d", 2136};
std::cout << buf.c_str() << std::endl;
// prints "0x1.91eb86p+1"
char buf[1024];
FormatBuffer::print(buf, "%a", 3.14f);
std::cout << buf.c_str() << std::endl;