std::print
Определено в заголовочном файле <print> | ||
|---|---|---|
template< class... Args >
void print( std::FILE* stream,
std::format_string<Args...> fmt, Args&&... args );
| (1) | (с C++23) |
template< class... Args > void print( std::format_string<Args...> fmt, Args&&... args ); | (2) | (с C++23) |
Форматирует args согласно строке форматирования fmt, и выводит результат в поток.
-
std::vprint_unicode(stream, fmt.get(), std::make_format_args(args...));. Иначе, -
std::vprint_nonunicode(stream, fmt.get(), std::make_format_args(args...));.
2) аналогично (1) с использованием стандартного потока вывода C
stdout связанного с stream, т.е. std::print(stdout, fmt, args...);
Поведение является неопределённым, если std::formatter<Ti, char> не удовлетворяет требованиям BasicFormatter для любого Ti в Args (как требуется std::make_format_args).
Параметры
| stream | - | поток вывода файла для записи | ||||||||||||||
| fmt | - | объект, представляющий строку форматирования. Строка форматирования состоит из
Каждое поле замены имеет следующий формат:
|
||||||||||||||
| args... | - | аргументы для форматирования |
Возвращаемое значение
(ничего)
Исключения
-
std::bad_allocпри ошибке выделения памяти. -
std::system_error, если запись в поток завершилась ошибкой. - Перебрасывает любое исключение, брошенное использованными форматерами, например
std::format_error.
Примечания
| Макросы проверки функций | Значение | Std | Функция |
|---|---|---|---|
__cpp_lib_print | 202207L | (C++23) | Форматированный вывод |
__cpp_lib_format | 202207L | (C++23) | Вызов std::basic_format_string |
Пример
#include <cstdio>
#include <filesystem>
#include <print>
int main()
{
std::print("{0} {2}{1}!\n", "Hello", 23, "C++"); // overload (2)
const auto tmp {std::filesystem::temp_directory_path() / "test.txt"};
if (std::FILE* stream{std::fopen(tmp.c_str(), "w")})
{
std::print(stream, "File: {}", tmp.string()); // overload (1)
std::fclose(stream);
}
}Вывод:
Hello C++23!
См. также
|
(C++23) | то же самое, что и std::print за исключением того, что каждый вывод завершается дополнительной новой строкой (шаблон функции) |
|
(C++23) | выводит отформатированное представление аргументов (шаблон функции) |
|
(C++20) | хранит отформатированное представление аргументов в новой строке (шаблон функции) |
|
(C++20) | записывает отформатированное представление аргументов через итератор вывода (шаблон функции) |
|
(C++11) | выводит отформатированный вывод в stdout, поток файла или буфер (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/print