Format text with the new format library
Until now, if you wanted to format text, you could use either the legacy printf
functions or the STL iostream
library. Both have their strengths and flaws.
The printf
-based functions are inherited from C and have proven efficient, flexible, and convenient for over 50 years. The formatting syntax can look a bit cryptic, but it's simple enough once you get used to it.
printf("Hello, %s\n", c_string);
The main weakness in printf
is its lack of type safety. The common printf()
function (and its relatives) use C's variadic arguments model to pass parameters to a formatter. This works great when it works, but it can cause serious problems when a parameter type doesn't match its corresponding format specifier. Modern compilers do as much type-checking as they can, but the model is inherently flawed and the protection can only go so far.
The STL iostream
library brings type safety at the expense of readability and...