Espacios de nombres
Variantes

print(std::ostream)

De cppreference.com
 
 
Biblioteca de E/S
Manipuladores de E/S
E/S estilo C
Búferes
(en desuso en C++98)
Flujos
Abstracciones
E/S de archivos
E/S de cadenas
E/S de arrays
(en desuso en C++98)
(en desuso en C++98)
(en desuso en C++98)
Salida sincronizada
Tipos
Interfaz de categoría de error
(C++11)
 
 
Definido en el archivo de encabezado <ostream>
template< class... Args >
void print( std::ostream& os, std::format_string<Args...> fmt, Args&&... args );
(desde C++23)

Da formato a args de acuerdo a la cadena de formato fmt, e inserta el resultado en el flujo os.

Si la codificación literal ordinaria es UTF-8, es equivalente a:

El comportamiento es indefinido si std::formatter<Ti, char> no cumple con los requerimientos BasicFormatter para cualquier Ti en Args (según lo requiere std::make_format_args).

Parámetros

os - Flujo de salida al cual insertarle los datos
fmt - Un objeto que representa la cadena de formato. La cadena de formato consiste en:
  • caracteres ordinarios (excepto { y }), que se copian sin cambiarse a la salida,
  • secuencias de escape {{ y }}, que se reemplazan con { y }, respectivamente en la salida, y
  • campos de reemplazo.

Cada campo de reemplazo tiene el siguiente formato:

  • un carácter { introductorio;
  • (opcional) arg-id, un número no negativo;
  • (opcional) dos puntos (:) seguido de una especificación de formato;
  • un carácter } final.

arg-id especifica el índice del argumento en args cuyo valor se usará para formatear; si se omite arg-id, los argumentos se usan en orden. Los arg-ids en una cadena de formato tienen que estar presentes o todos deben de omitirse. Mezclar la indexación manual y automática es un error.

La especificación de formato se define por la especialización de std::formatter del argumento correspondiente.

(desde C++23)
(desde C++26)
  • Para los otros tipos formateables, la especificación de formato se determina por especializaciones de formatter definidas por el usuario.
args... - Argumentos a ser formateados

Valor de retorno

(ninguno)

Excepciones

  • std::bad_alloc en errores de asignación.
  • Propaga cualquier excepción lanzada por cualquier formatter, p.e. std::format_error, sin importar el valor de os.exceptions() y sin activar std::ios_base::badbit en el estado de error de os.
  • Puede lanzar std::ios_base::failure causada por os.setstate(ios_base::badbit) el cual es llamado si una inserción a os falla.

Notas

Macro de prueba de característica Valor Estándar Comentario
__cpp_lib_print 202207L (C++23) Salida formateada
__cpp_lib_format 202207L (C++23) Exponiendo std::basic_format_string

Ejemplo

#include <array>
#include <cctype>
#include <cstdio>
#include <format>
#include <numbers>
#include <ranges>
#include <sstream>

int main()
{
    std::array<char, 24> buf;
    std::format_to(buf.begin(), "{:.15f}", std::numbers::sqrt2);

    unsigned num{}, sum{};

    auto v = buf
           | std::views::filter(isdigit)
           | std::views::transform([](char x) { return x - '0'; })
           | std::views::take_while([&sum](char) { return sum < 42; });

    for (auto n : v)
        sum += n, ++num;

    std::stringstream stream;

    std::print(stream,
        "√2 = {}...\n"
        "La suma de los primeros {} dígitos es {}{}",
        std::numbers::sqrt2, num, sum, '.'
    );

    std::puts(stream.str().data());
}

Salida:

√2 = 1.4142135623730951...
La suma de los primeros 13 dígitos es 42.

Véase también

Genera la representación formateada de los argumentos con la adición del caracter de nueva línea '\n' al final
(plantilla de función) [editar]
(C++23)
Imprime en stdout, o en un flujo de archivo usando la representación formateada de los argumentos
(plantilla de función) [editar]
(C++20)
Almacena una representación formateada de los argumentos en una cadena nueva.
(plantilla de función) [editar]
Morty Proxy This is a proxified and sanitized view of the page, visit original site.