Поделиться через


_printf_p, _printf_p_l, _wprintf_p, _wprintf_p_l

Печатает форматированные выходные данные в стандартный поток вывода и включает спецификацию порядка, в котором параметры используются в строке формата.

int _printf_p(
   const char *format [,
   argument]... 
);
int _printf_p_l(
   const char *format,
   locale_t locale [,
   argument]... 
);
int _wprintf_p(
   const wchar_t *format [,
   argument]... 
);
int _wprintf_p_l(
   const wchar_t *format,
   locale_t locale [,
   argument]... 
);

Параметры

  • format
    Управление форматом.

  • argument
    Необязательные аргументы.

  • locale
    Используемый языковой стандарт.

Возвращаемое значение

Возвращает число напечатанных символов или отрицательное значение в случае ошибки.

Заметки

Функция _printf_p форматирует и выводит ряд символов и значений в стандартный поток вывода, stdout. Если аргументы следуют за строкой format, строка format должна содержать спецификации, которые определяют формат вывода для аргументов (см. Позиционные параметры printf_p).

Различие между _printf_p и printf_s , _printf_p заключается в поддержке позиционных параметров, которые позволяют определить порядок, в котором аргументы используются для форматирования строки. Для получения дополнительной информации см. Позиционные параметры printf_p.

_wprintf_p является версией _printf_p для расширенных символов; они ведут себя одинаково, если поток открывается в режиме ANSI. _printf_p в настоящее время не поддерживает вывод в поток в юникоде.

Версии этих функций с суффиксом _l идентичны за исключением того, что они используют переданный параметр языкового стандарта вместо языкового стандарта текущего потока.

Примечание о безопасностиПримечание по безопасности

Убедитесь, что format не является строкой, определяемой пользователем.

Если format или argument имеют значение NULL или строка формата содержит недопустимые символы форматирования, функции _printf_p и _wprintf_p вызывают обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если выполнение может быть продолжено, функция возвращает -1 и устанавливает errno в значение EINVAL.

Универсальное текстовое сопоставление функций

Подпрограмма Tchar.h

_UNICODE и _MBCS не определены

_MBCS определено

_UNICODE определено

_tprintf_p

_printf_p

_printf_p

_wprintf_p

_tprintf_p_l

_printf_p_l

_printf_p_l

_wprintf_p_l

Требования

Подпрограмма

Обязательный заголовок

_printf_p, _printf_p_l

<stdio.h>

_wprintf_p, _wprintf_p_l

<stdio.h> или <wchar.h>

Консоль не поддерживается в приложениях Магазин Windows. Стандартные дескрипторы потока, связанные с консолью — stdin, stdout и stderr — необходимо перенаправить, чтобы функции C времени выполнения могли использовать их в приложениях Магазин Windows. Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

// crt_printf_p.c
// This program uses the _printf_p and _wprintf_p
// functions to choose the order in which parameters
// are used.

#include <stdio.h>

int main( void )
{
   // Positional arguments 
   _printf_p( "Specifying the order: %2$s %3$s %1$s %4$s %5$s.\n",
              "little", "I'm", "a", "tea", "pot");

   // Resume arguments
   _wprintf_p( L"Reusing arguments: %1$d %1$d %1$d %1$d\n", 10);

   // Width argument
   _printf_p("Width specifiers: %1$*2$s", "Hello\n", 10);
}
  

Эквивалент в .NET Framework

См. также

Ссылки

Поддержка чисел с плавающей запятой

Потоковый ввод-вывод

Языковой стандарт

fopen, _wfopen

_fprintf_p, _fprintf_p_l, _fwprintf_p, _fwprintf_p_l

fprintf, _fprintf_l, fwprintf, _fwprintf_l

fprintf_s, _fprintf_s_l, fwprintf_s, _fwprintf_s_l

scanf, _scanf_l, wscanf, _wscanf_l

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

_sprintf_p, _sprintf_p_l, _swprintf_p, _swprintf_p_l

sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l

sprintf_s, _sprintf_s_l, swprintf_s, _swprintf_s_l

Функции vprintf