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 parametry pozycyjne w ciągu formatu.

Ważna uwagaWażne

Ten interfejs API nie może być stosowany w aplikacjach, które są wykonywane w Środowisko wykonawcze systemu Windows .Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsł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 do użycia.

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

Wartość zwracana

Liczba znaków, które są napisane lub wartość ujemną, jeśli wystąpi błąd wyjścia.Jeśli format jest pustym wskaźnikiem, zostanie wywołana procedura obsługi nieprawidłowego parametru, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowane, errno jest ustawione jako EINVAL, a -1 jest zwracane.

Uwagi

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

Wersje tych funkcji, które mają przyrostek _l są identyczne, z tą różnicą, że korzystają z przekazanego parametru ustawień regionalnych, zamiast bieżących ustawień regionalnych.

Każdy argument (jeśli istnieje) są konwertowane, a dane wyjściowe według specyfikacji formatu w format.Specyfikacja formatu obsługuje parametrów pozycyjne, dzięki czemu można określić kolejność, w której 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 wynikiem.

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

Zapewnienia, że format nie jest ciągiem zdefiniowanym przez użytkownika.Aby uzyskać więcej informacji, zobacz unikanie przekroczenia buforu.

Te funkcje sprawdzania poprawności wskaźnika 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ługę nieprawidłowy parametr, zgodnie z opisem w Sprawdzanie poprawności parametru.Jeśli wykonanie może być kontynuowane, te funkcje zwracają wartość -1 i ustawiają errno na EINVAL.

Rutynowe mapowania zwykłego tekstu

Procedura Tchar.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS zdefiniowano

_UNICODE zdefiniowany

_vtcprintf_p

_vcprintf_p

_vcprintf_p

_vcwprintf_p

_vtcprintf_p_l

_vcprintf_p_l

_vcprintf_p_l

_vcwprintf_p_l

Wymagania

Procedura

Wymagany nagłówek

_vcprintf_p, _vcprintf_p_l

<conio.h> i <stdarg.h>

_vcwprintf_p, _vcwprintf_p_l

<conio.h> i <stdarg.h>

Aby uzyskać więcej informacji na temat 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

Operacje We/Wy konsoli i portu

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

va_arg, va_copy, va_end, va_start

printf_p Parametry pozycyjne