Udostępnij za pośrednictwem


_printf_p, _printf_p_l, _wprintf_p, _wprintf_p_l

Drukuje sformatowane dane wyjściowe do strumienia wyjścia standardowego i umożliwia specyfikację zamówienia, w którym są używane parametry w ciągu formatu.

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]... 
);

Parametry

  • format
    Formant formatu.

  • argument
    Argumenty opcjonalne.

  • locale
    Ustawienia regionalne do użycia.

Wartość zwracana

Zwraca liczbę znaków drukowanych lub wartość ujemną, jeśli wystąpi błąd.

Uwagi

Funkcja _printf_p formatuje i drukuje serie znaków i wartości do standardowego strumienia wyjściowego, stdout.Jeśli po ciągu format pojawiają się argumenty, ciąg format musi zawierać specyfikacje, które określają format wyjściowy dla argumentów (patrz printf_p Parametry pozycyjne).

Różnica między _printf_p i printf_s polega na tym, że _printf_p wspiera parametry pozycyjne, które umożliwiają określenie kolejności, w której argumenty są używane w ciągu formatu.Aby uzyskać więcej informacji, zobacz printf_p Parametry pozycyjne.

_wprintf_p jest wersją znaków dwubajtowych _printf_p; obie zachowują się identycznie, jeśli strumień jest otwarty w trybie ANSI._printf_p aktualnie nie obsługuje danych wyjściowych w strumieniu UNICODE.

Wersje tych funkcji z przyrostkiem _l są identyczne z wyjątkiem stosowania regionalnych parametrów zamiast bieżącego ciągu.

Uwaga dotycząca zabezpieczeńUwaga dotycząca zabezpieczeń

Zapewnienia, że format nie jest ciągiem zdefiniowanym przez użytkownika.

Jeśli format lub argument są NULL lub ciąg formatu zawiera nieprawidłowe znaki formatowania, funkcje _printf_p i _wprintf_p wywołają procedurę obsługi nieprawidłowego parametru, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowane, funkcja zwraca wartość -1 i ustawia errno na EINVAL.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS zdefiniowano

_UNICODE zdefiniowany

_tprintf_p

_printf_p

_printf_p

_wprintf_p

_tprintf_p_l

_printf_p_l

_printf_p_l

_wprintf_p_l

Wymagania

Procedura

Wymagany nagłówek

_printf_p, _printf_p_l

<stdio.h>

_wprintf_p, _wprintf_p_l

<stdio.h> lub <wchar.h>

Konsola nie jest obsługiwana w aplikacjach Windows Store.Standardowe uchwyty strumienia powiązane z konsolą—stdin, stdout, i stderr—muszą zostać przekierowane zanim będą wykorzystane przez funkcje środowiska uruchomieniowego C w aplikacjach Windows Store.Aby uzyskać więcej informacji na temat zgodności – zobacz: Zgodność.

Przykład

// 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);
}
  

Odpowiednik w programie .NET Framework

Zobacz też

Informacje

Obsługa liczb zmiennoprzecinkowych

We/Wy strumienia

Regionalne

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 — Funkcje