_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.
Sicherheitshinweis |
---|
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
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l