std::vprint_nonunicode, std::vprint_nonunicode_buffered
Определено в заголовочном файле <print> | ||
|---|---|---|
void vprint_nonunicode( std::FILE* stream,
std::string_view fmt, std::format_args args );
| (1) | (начиная с C++23) |
void vprint_nonunicode_buffered
( std::FILE* stream, std::string_view fmt, std::format_args args );
| (2) | (начиная с C++23) |
void vprint_nonunicode_buffered
( std::string_view fmt, std::format_args args );
| (3) | (начиная с C++23) |
Форматирует args согласно строке формата fmt и записывает результат в выходной поток.
1) Удерживая блокировку на
stream, записывает символьное представление аргументов форматирования, переданных посредством args и отформатированных согласно спецификациям, заданным в fmt, в stream.
Если
stream не является допустимым указателем на выходной поток C, поведение не определено.
2) Эквивалентно
std::string out = std::vformat(fmt, args);
std::vprint_nonunicode(stream, "{}", std::make_format_args(out));
3) Эквивалентно
std::vprint_nonunicode_buffered(stdout, fmt, args).| После записи символов в выходной поток устанавливает наблюдаемую контрольную точку. | (начиная с C++26) |
Параметры
| stream | - | выходной файловый поток для записи | ||||||||||||||||
| fmt | - | объект, представляющий строку формата. Строка формата состоит из
Каждое поле подстановки имеет следующий формат:
|
||||||||||||||||
| args | - | аргументы для форматирования |
Исключения
-
std::bad_allocпри сбое выделения памяти. -
std::system_error, если запись в поток завершается ошибкой. - Передаёт любые исключения, выброшенные используемыми форматтерами, например
std::format_error.
Примечания
| Макрос проверки поддержки возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_print | 202207L | (C++23) | Форматированный вывод |
202403L |
(C++26) (DR23) | Небуферизованный форматированный вывод | |
202406L |
(C++26) (DR23) | Поддержка небуферизованного форматированного вывода для большего числа форматируемых типов | |
__cpp_lib_format | 202207L | (C++23) | Предоставление std::basic_format_string |
Пример
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применяется к | Поведение согласно опубликованной версии | Правильное поведение |
|---|---|---|---|
| P3107R5 | C++23 | операции вывода всегда использовали буферизацию | предоставляет небуферизованные операции вывода |
| P3235R3 | C++23 | названия функций, добавленных в P3107R5, вводили в заблуждение | изменены названия функций |
См. также
|
(C++23) | выводит данные в stdout с поддержкой Unicode или файловый поток, используя стёртое по типу представление аргументов (функция) |
|
(C++23) | выводит символьные данные, используя стёртое по типу представление аргументов (функция) |
|
(C++23) | выводит данные в stdout или файловый поток, используя форматированное представление аргументов (шаблон функции) |
|
(C++20) | сохраняет форматированное представление аргументов в новой строке (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/vprint_nonunicode