Udostępnij za pośrednictwem


_vcprintf_p, _vcprintf_p_l, _vcwprintf_p, _vcwprintf_p_l

Zapisuje sformatowane dane wyjściowe do konsoli za pomocą wskaźnika do listy argumentów i obsługuje parametrów pozycyjne w ciągu formatu.

Ważna uwagaWażne

Ten interfejs API nie można używać w aplikacji, których wykonywanie w Środowisko wykonawcze systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsługiwane przez /ZW.

int _vcprintf_p(
   const char* format,
   va_list argptr
);
int _vcprintf_p_l(
   const char* format,
   locale_t locale,
   va_list argptr
);
int _vcwprintf_p(
   const wchar_t* format,
   va_list argptr
);
int _vcwprintf_p_l(
   const wchar_t* format,
   locale_t locale,
   va_list argptr
);

Parametry

  • format
    Specyfikacja formatu.

  • argptr
    Wskaźnik do listy argumentów.

  • locale
    Ustawienia regionalne używane.

Aby uzyskać więcej informacji, zobacz Składnia specyfikacji formatu: funkcje printf i wprintf.

Wartość zwracana

Liczba znaków, które zostały napisane, lub wartość ujemną, jeśli wystąpi błąd danych wyjściowych.Jeśli format jest pusty wskaźnik, program obsługi nieprawidłowy parametr jest wywoływana, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, errno jest ustawiona na EINVAL i zwracana jest wartość -1.

Uwagi

Każda z tych funkcji ma wskaźnik do listy argumentów, a następnie używa _putch funkcja do formatowania i zapisać dostarczone dane do konsoli.(_vcwprintf_p uses _putwch instead of _putch._vcwprintf_pjest to wersja szerokich znaków _vcprintf_p.Zajmuje to łańcuch szerokich znaków jako argument.)

Wersje te funkcje, które mają _l sufiks są identyczne z tym, że używają parametru ustawień regionalnych, który jest przekazywana zamiast bieżących ustawień regionalnych.

Każdy argument (jeśli istnieje) są konwertowane, a są kierowane według specyfikacji formatu w format.Specyfikacja formatu obsługuje parametrów pozycyjne, tak aby można określić kolejność, w którym argumenty są używane w ciągu formatu.Aby uzyskać więcej informacji, zobacz printf_p parametry pozycyjne.

Te funkcje nie tłumaczenia znaki wysuwu wiersza do przewozu kombinacje return-line feed (CR-LF), gdy są one dane wyjściowe.

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

Zapewnienia, że format nie jest ciągiem zdefiniowane przez użytkownika.Aby uzyskać więcej informacji, zobacz Unikanie przekroczeniem buforu.

Te funkcje sprawdzania poprawności, wskaźnik wejściowych i ciąg formatu.Jeśli format lub argument jest NULL, lub jeśli ciąg formatu zawiera nieprawidłowe znaki formatowania, tych funkcji WYWOŁAJ obsługi przez nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może kontynuować, funkcje zwracają wartość -1 i ustawić errno do EINVAL.

Tekst rodzajowy rutynowych mapowania

Rozpoczęto wykonywanie procedury TCHAR.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS, definicja

_UNICODE, definicja

_vtcprintf_p

_vcprintf_p

_vcprintf_p

_vcwprintf_p

_vtcprintf_p_l

_vcprintf_p_l

_vcprintf_p_l

_vcwprintf_p_l

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_vcprintf_p, _vcprintf_p_l

<conio.h> i <stdarg.h>

_vcwprintf_p, _vcwprintf_p_l

<conio.h> i <stdarg.h>

Informacji dotyczących zgodności, zobacz Zgodność.

Przykład

// crt_vcprintf_p.c
// compile with: /c
#include <conio.h>
#include <stdarg.h>

// An error formatting function that's used to print to the console.
int eprintf(const char* format, ...)
{
  va_list args;
  va_start(args, format);
  return _vcprintf_p(format, args);
}

int main()
{
   int n = eprintf("parameter 2 = %2$d; parameter 1 = %1$s\r\n",
      "one", 222);
   _cprintf_s("%d characters printed\r\n");
}
  

Zobacz też

Informacje

Konsoli i portów We/Wy

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

va_arg, va_end, va_start

printf_p parametry pozycyjne