std::print
Definido en el archivo de encabezado <print>
|
||
template< class... Args > void print( std::format_string<Args...> fmt, Args&&... args ); |
(1) | (desde C++23) |
template< class... Args > void print( std::FILE* stream, |
(2) | (desde C++23) |
Da formato a args de acuerdo a la cadena de formato fmt, e imprime el resultado en un flujo de salida.
? std::vprint_unicode_locking(stream, fmt.str, make_format_args(args...))
: std::vprint_unicode(stream, fmt.str, make_format_args(args...));.
? std::vprint_nonunicode_locking(stream, fmt.str, make_format_args(args...))
: std::vprint_nonunicode(stream, fmt.str, make_format_args(args...));.
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).
Contenido |
[editar] Parámetros
stream | - | Flujo de salida al cual escribir | ||||
fmt | - |
Cada campo de reemplazo tiene el siguiente formato:
arg-id especifica el índice del argumento en La especificación de formato se define por la especialización de std::formatter del argumento correspondiente.
| ||||
args... | - | Argumentos a ser formateados |
[editar] Excepciones
- std::bad_alloc en errores de asignación.
- std::system_error, si falla la escritura a los flujos.
- Propaga cualquier excepción lanzada por los formatters usados, p.e. std::format_error.
[editar] Notas
Macro de prueba de característica | Valor | Estándar | Comentario |
---|---|---|---|
__cpp_lib_print |
202207L | (C++23) | Salida formateada |
202403L | (C++26) | Salida formateada con flujo bloqueado | |
__cpp_lib_format |
202207L | (C++23) | Exponiendo std::basic_format_string |
[editar] Ejemplo
#include <cstdio> #include <filesystem> #include <print> int main() { std::print("{0} {2}{1}!\n", "Hola", 23, "C++"); // sobrecarga (2) const auto tmp {std::filesystem::temp_directory_path() / "prueba.txt"}; if (std::FILE* stream{std::fopen(tmp.c_str(), "w")}) { std::print(stream, "Archivo: {}", tmp.string()); // sobrecarga (1) std::fclose(stream); } }
Salida:
Hola C++23!
[editar] Véase también
(C++23) |
Igual que std::print excepto que cada impresión finaliza con una línea nueva adicional (plantilla de función) |
(C++23) |
Genera la representación formateada de los argumentos (plantilla de función) |
(C++20) |
Almacena una representación formateada de los argumentos en una cadena nueva. (plantilla de función) |
(C++20) |
Escribe una representación formateada de sus argumentos mediante un iterador de salida. (plantilla de función) |
(C++11) |
Imprime la salida formateada para stdout, una secuencia de archivo o un búfer. (función) |