typestar

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

  1. {:<10} alinea la etiqueta a la izquierda; {:>8.2f} alinea el número a la derecha, con dos decimales.
  2. Los argumentos pueden nombrarse por índice — {0} y {1} los reutilizan en cualquier orden.
  3. {0:#06x} y {0:#b} imprimen el mismo 42 en hexadecimal relleno con ceros y en binario.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 3 de 3 en Cadenas y streams; paso 21 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →