std::format en C++
La respuesta de C++20 a printf: plantillas verificadas por tipo, con alineación, precisión y bases.
#include <format>
#include <iostream>
#include <string>
int main() {
std::string label = "latency";
double ms = 4.276;
std::cout << std::format("{:<10} {:>8.2f} ms\n", label, ms);
std::cout << std::format("{0} of {1} ({2:.1f}%)\n",
45, 60, 100.0 * 45 / 60);
std::cout << std::format("hex {0:#06x} binary {0:#b}\n", 42);
}
Cómo funciona
{:<10}alinea la etiqueta a la izquierda;{:>8.2f}alinea el número a la derecha, con dos decimales.- Los argumentos pueden nombrarse por índice —
{0}y{1}los reutilizan en cualquier orden. {0:#06x}y{0:#b}imprimen el mismo 42 en hexadecimal relleno con ceros y en binario.
Palabras clave y builtins usados aquí
doubleint
El intento, en números
- Líneas
- 12
- Caracteres a escribir
- 323
- Tokens
- 97
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 83 segundos.
Paso 3 de 3 en Cadenas y streams; paso 21 de 27 en Fundamentos del lenguaje.