Spec-Zone.ru › C++

std::vprint_nonunicode

Определено в заголовке <print>
void vprint_nonunicode( std::FILE* stream,
                        std::string_view fmt, std::format_args args );
(1) (с C++23)
void vprint_nonunicode( std::string_view fmt, std::format_args args );
(2) (с C++23)

Форматирует args в соответствии со строкой формата fmt, и записывает результат в поток.

1) Записывает результат std::vformat(fmt, args) в поток. Поведение неопределено, если stream не является допустимым указателем на поток C.
2) аналогично (1), когда stream равен стандартному потоку вывода C stdout, т.е. std::vprint_nonunicode(stdout, fmt, args);.

Параметры

stream - поток вывода для записи
fmt - объект, представляющий строку формата. Строка формата состоит из
  • обычных символов (кроме { и }), которые копируются без изменений в вывод,
  • последовательностей управляющих символов {{ и }}, которые заменяются на { и } соответственно в выводе, и
  • полей замены.

Каждое поле замены имеет следующий формат:

{ arg-id (необязательно) } (1)
{ arg-id (необязательно) : format-spec } (2)
1) поле замены без спецификации формата 2) поле замены со спецификацией формата
arg-id - указывает индекс аргумента в args значение которого используется для форматирования; если он опущен, аргументы используются в порядке следования.

Идентификаторы arg-id в строке формата должны быть все присутствующими или все опущенными. Смешение ручного и автоматического индексирования является ошибкой.

format-spec - спецификация формата, определенная специализацией std::formatter для соответствующего аргумента.
  • Для основных типов и стандартных типов строк спецификация формата интерпретируется как стандартная спецификация формата.
  • Для типов chrono спецификация формата интерпретируется как спецификация формата chrono.
  • Для типов диапазонов спецификация формата интерпретируется как спецификация формата диапазона.
  • Для std::pair и std::tuple, спецификация формата интерпретируется как спецификация формата кортежа.
  • Для std::thread::id и std::stacktrace_entry, см. спецификацию формата идентификатора потока и спецификацию формата записи стека вызовов.
  • Для std::basic_stacktrace спецификатор формата не разрешен.
(с C++23)
  • Для других форматируемых типов спецификация формата определяется пользовательскими специализациями formatter.
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

Пример

См. также

vprint_unicode
(C++23)
выводит в Unicode-совместимый stdout или поток файла, используя тип-стираемый вид аргумента
(функция)
vprint_nonunicode(std::ostream)
(C++23)
выводит символьные данные с помощью тип-стираемого вида аргумента
(функция)
print
(C++23)
выводит в stdout или поток файла, используя форматированный вид аргументов
(шаблон функции)
format
(C++20)
сохраняет форматированный вид аргументов в новой строке
(шаблон функции)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/vprint_nonunicode

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API