std::println
Определён в заголовочном файле <print> | ||
|---|---|---|
template< class... Args > void println( std::format_string<Args...> fmt, Args&&... args ); | (1) | (начиная с C++23) |
template< class... Args >
void println( std::FILE* stream,
std::format_string<Args...> fmt, Args&&... args );
| (2) | (начиная с C++23) |
void println(); | (3) | (начиная с C++26) |
void println( std::FILE* stream ); | (4) | (начиная с C++26) |
Форматирует args в соответствии со строкой формата fmt с добавлением '\n' (то есть каждый вывод завершается символом новой строки) и выводит результат в поток.
std::println(stdout, fmt, std::forward<Args>(args)...).std::print(stream, std::dynamic_format(std::string(fmt.get()) + '\n'),
std::forward<Args>(args)...)
std::println(stdout).std::print(stream, "\n").Если std::formatter<Ti,char> не соответствует требованиям BasicFormatter для любого Ti в Args (как того требует std::make_format_args), поведение не определено.
Параметры
| stream | - | выходной файловый поток для записи | ||||||||||||||||
| fmt | - | объект, представляющий строку формата. Строка формата состоит из
Каждое поле подстановки имеет следующий формат:
|
||||||||||||||||
| args... | - | аргументы для форматирования |
Исключения
-
std::bad_allocпри ошибке выделения памяти. -
std::system_error, если запись в поток завершается неудачно. - Передаёт любое исключение, выброшенное используемыми форматтерами, например
std::format_error.
Примечания
Хотя перегрузки (3,4) добавлены в C++26, все известные реализации предоставляют их в режиме C++23.
| Макрос проверки возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_print | 202207L | (C++23) | Форматированный вывод |
202403L |
(C++26) (DR23) | Небуферизованный форматированный вывод | |
__cpp_lib_format | 202207L | (C++23) | Предоставление std::basic_format_string |
Пример
#include <print>
int main()
{
// Each call to std::println ends with new-line
std::println("Please"); // overload (1)
std::println("enter"); // (1)
std::print("pass");
std::print("word");
std::println(); // (3); valid since C++26; same effect as std::print("\n");
}
Вывод:
Please enter password
См. также
|
(C++23) | выводит данные в stdout или файловый поток, используя форматированное представление аргументов (шаблон функции) |
|
(C++23) | выводит форматированное представление аргументов с добавлением '\n' (шаблон функции) |
|
(C++20) | сохраняет форматированное представление аргументов в новой строке (шаблон функции) |
|
(C++11) | выводит форматированные данные в stdout, файловый поток или буфер (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/println