Freigeben über


_vcprintf_p, _vcprintf_p_l, _vcwprintf_p, _vcwprintf_p_l

Schreibt formatierte Ausgabe an die Konsole, indem einen Zeiger auf eine Liste mit Argumenten verwendete, und unterstützt positionelle Parameter in der Formatzeichenfolge.

Wichtig

Diese API kann nicht in Anwendungen verwendet werden, die im Windows-Runtime ausgeführt werden.Weitere Informationen finden Sie unter CRT-Funktionen nicht mit /ZW unterstützt.

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

Parameter

  • format
    Die Formatangabe.

  • argptr
    Ein Zeiger auf eine Liste der Argumente.

  • locale
    Das zu verwendende Gebietsschema.

Weitere Informationen finden Sie unter Syntax der Formatangabe: printf- und wprintf-Funktionen.

Rückgabewert

Die Anzahl der Zeichen, die geschrieben werden oder ein negativer Wert, wenn ein Ausgabefehler auftritt. Wenn format ein NULL-Zeiger ist, wird der Handler für ungültige Parameter aufgerufen, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, wird errno auf EINVAL festgelegt und – 1 zurückgegeben.

Hinweise

Jede dieser Funktionen verwendet einen Zeiger auf eine Argumentliste und verwendet dann die _putch-Funktion, um die angegebenen Daten in die Konsole zu formatieren und zu schreiben. (_vcwprintf_p mit _putwch statt _putch. _vcwprintf_p ist die Breitzeichenversion von _vcprintf_p. Sie akzeptiert eine Zeichenfolge mit Breitzeichen als Argument.)

Die Versionen dieser Funktionen mit dem _l-Suffix sind beinahe identisch, verwenden jedoch den Gebietsschemaparameter, der anstelle des aktuellen Gebietsschemas übergeben wurde.

Jedes argument (falls vorhanden) wird konvertiert und wird entsprechend der entsprechenden Formatangabe in format ausgegeben. Die Formatangabe positionelle Parameter unterstützt, damit Sie die Reihenfolge angeben können, in der die Argumente in der Formatzeichenfolge verwendet werden. Weitere Informationen finden Sie unter printf_p-Positionsparameter.

Diese Funktionen verschieben Zeilenvorschubzeichen nicht in Kombinationen von Wagenrücklauf-Zeilenvorschubs (CR-LF), wenn sie ausgegeben werden.

SicherheitshinweisSicherheitshinweis

Stellen Sie sicher, dass format keine benutzerdefinierte Zeichenfolge ist.Weitere Informationen finden Sie unter Vermeiden von Pufferüberläufen.

Diese Funktionen überprüfen den Eingabezeiger und die Formatzeichenfolge. Wenn format oder argumentNULL ist oder wenn Formatzeichenfolge die ungültige Formatierungszeichen enthält, rufen diese Funktionen den ungültigen Parameterhandler auf, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, geben diese Funktionen "– 1" zurück und legen errno auf EINVAL fest.

Zuordnung generischer Textroutinen

Tchar.h-Routine

_UNICODE und _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_vtcprintf_p

_vcprintf_p

_vcprintf_p

_vcwprintf_p

_vtcprintf_p_l

_vcprintf_p_l

_vcprintf_p_l

_vcwprintf_p_l

Anforderungen

Routine

Erforderlicher Header

_vcprintf_p, _vcprintf_p_l

<conio.h> und <stdarg.h>

_vcwprintf_p, _vcwprintf_p_l

<conio.h> und <stdarg.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

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

Siehe auch

Referenz

Konsole und Port-E/A

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

va_arg, va_copy, va_end, va_start

printf_p-Positionsparameter