Namespaces
Variants

std:: vprint_nonunicode, std:: vprint_nonunicode_buffered

From cppreference.net
< cpp ‎ | io
Print functions
Print functions
(C++23)
(C++23)
vprint_nonunicode vprint_nonunicode_buffered
(C++23) (C++23)
Definido en el encabezado <print>
void vprint_nonunicode ( std:: FILE * stream,
std:: string_view fmt, std:: format_args args ) ;
(1) (desde C++23)
void vprint_nonunicode_buffered
( std:: FILE * stream, std:: string_view fmt, std:: format_args args ) ;
(2) (desde C++23)
void vprint_nonunicode_buffered
( std:: string_view fmt, std:: format_args args ) ;
(3) (desde C++23)

Formatea args de acuerdo con la cadena de formato fmt , y escribe el resultado al flujo de salida.

1) Mientras mantiene el bloqueo en stream , escribe la representación en caracteres de los argumentos de formato proporcionados por args formateados de acuerdo con las especificaciones dadas en fmt hacia stream .
Si stream no es un puntero válido a un flujo de salida de C, el comportamiento es indefinido.
2) Equivalente a std:: string out = std:: vformat ( fmt, args ) ;
std :: vprint_nonunicode ( stream, "{}" , std:: make_format_args ( out ) ) ;
.
3) Equivalente a std :: vprint_nonunicode_buffered ( stdout , fmt, args ) .


Después de escribir caracteres en el flujo de salida, establece un punto de control observable .

(since C++26)

Contenidos

Parámetros

stream - flujo de archivo de salida donde escribir
fmt - un objeto que representa la cadena de formato. La cadena de formato consiste en
  • caracteres ordinarios (excepto { y } ), que se copian sin cambios 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:

{ arg-id (opcional) } (1)
{ arg-id (opcional) : format-spec } (2)
1) campo de reemplazo sin especificación de formato
2) campo de reemplazo con especificación de formato
arg-id - especifica el índice del argumento en args cuyo valor se usará para el formato; si se omite, los argumentos se usan en orden.

Los arg-id s en una cadena de formato deben estar todos presentes o todos omitidos. Mezclar indexación manual y automática es un error.

format-spec - la especificación de formato definida por la especialización de std::formatter para el argumento correspondiente. No puede comenzar con } .

(desde C++23)
(desde C++26)
  • Para otros tipos formateables, la especificación de formato está determinada por especializaciones de formatter definidas por el usuario.
args - argumentos a formatear

Excepciones

Notas

Macro de prueba de características Valor Std Característica
__cpp_lib_print 202207L (C++23) Salida formateada
202403L (C++26)
(DR23)
Salida formateada sin búfer
202406L (C++26)
(DR23)
Habilitar salida formateada sin búfer para más tipos formateables
__cpp_lib_format 202207L (C++23) Exponer std::basic_format_string

Ejemplo

Informes de defectos

Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.

DR Aplicado a Comportamiento publicado Comportamiento correcto
P3107R5 C++23 las operaciones de impresión siempre estaban almacenadas en búfer proporciona operaciones de impresión sin búfer
P3235R3 C++23 los nombres de las funciones añadidas
por P3107R5 eran engañosos
se cambiaron los nombres de las funciones

Véase también

imprime en stdout compatible con Unicode o en un flujo de archivo usando representación de argumentos con borrado de tipo
(función)
emite datos de caracteres usando representación de argumentos con borrado de tipo
(función)
(C++23)
imprime en stdout o en un flujo de archivo usando representación formateada de los argumentos
(plantilla de función)
(C++20)
almacena la representación formateada de los argumentos en una nueva cadena
(plantilla de función)