_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
См. также
Ссылки
Поддержка чисел с плавающей запятой
_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