Condividi tramite


vprintf funzioni

Ognuna delle funzioni vprintf accetta un puntatore a un elenco di argomenti e quindi formatta e scrive i dati specificati in una destinazione particolare. Le funzioni differiscono in diversi modi: nella convalida dei parametri, se le funzioni accettano stringhe di caratteri a byte singolo o wide, la destinazione di output e il supporto per specificare i parametri dell'ordine vengono usati nella stringa di formato.

_vcprintf, _vcwprintf
vfprintf, vfwprintf
_vfprintf_p, _vfprintf_p_l, _vfwprintf_p_vfwprintf_p_l
vfprintf_s, _vfprintf_s_l, vfwprintf_s_vfwprintf_s_l
vprintf, vwprintf
_vprintf_p, _vprintf_p_l, _vwprintf_p_vwprintf_p_l
vprintf_s, _vprintf_s_l, vwprintf_s_vwprintf_s_l
_vscprintf, _vscprintf_l, _vscwprintf_vscwprintf_l
_vsnprintf, _vsnwprintfvsprintf, vswprintf
_vsprintf_p, _vsprintf_p_l, _vswprintf_p_vswprintf_p_l
vsprintf_s, _vsprintf_s_l, vswprintf_s_vswprintf_s_l

Osservazioni:

Le funzioni vprintf sono simili alle loro controparti, come indicato nella tabella seguente. Tuttavia, ogni funzione vprintf accetta un puntatore a una lista di argomenti, mentre ognuna delle funzioni corrispondenti accetta un elenco di argomenti.

Queste funzioni consentono di formattare i dati per l'output verso le destinazioni, come indicato di seguito.

Funzione Funzione controparte Destinazione di output Convalida dei parametri Supporto parametro posizionale
_vcprintf _cprintf console Controllo dei valori null. no
_vcwprintf _cwprintf console Controllo dei valori null. no
vfprintf fprintf stream Controllo dei valori null. no
vfprintf_p fprintf_p stream Controllo dei valori null e del formato valido. yes
vfprintf_s fprintf_s stream Controllo dei valori null e del formato valido. no
vfwprintf fwprintf stream Controllo dei valori null. no
vfwprintf_p fwprintf_p stream Controllo dei valori null e del formato valido. yes
vfwprintf_s fwprintf_s stream Controllo dei valori null e del formato valido. no
vprintf printf stdout Controllo dei valori null. no
vprintf_p printf_p stdout Controllo dei valori null e del formato valido. yes
vprintf_s printf_s stdout Controllo dei valori null e del formato valido. no
vwprintf wprintf stdout Controllo dei valori null. no
vwprintf_p wprintf_p stdout Controllo dei valori null e del formato valido. yes
vwprintf_s wprintf_s stdout Controllo dei valori null e del formato valido. no
vsprintf sprintf memoria puntata da buffer Controllo dei valori null. no
vsprintf_p sprintf_p memoria puntata da buffer Controllo dei valori null e del formato valido. yes
vsprintf_s sprintf_s memoria puntata da buffer Controllo dei valori null e del formato valido. no
vswprintf swprintf memoria puntata da buffer Controllo dei valori null. no
vswprintf_p swprintf_p memoria puntata da buffer Controllo dei valori null e del formato valido. yes
vswprintf_s swprintf_s memoria puntata da buffer Controllo dei valori null e del formato valido. no
_vscprintf _vscprintf memoria puntata da buffer Controllo dei valori null. no
_vscwprintf _vscwprintf memoria puntata da buffer Controllo dei valori null. no
_vsnprintf _snprintf memoria puntata da buffer Controllo dei valori null. no
_vsnwprintf _snwprintf memoria puntata da buffer Controllo dei valori null. no

L'argomento argptr è di tipo va_list, definito in VARARGS.H e in STDARG.H. La argptr variabile deve essere inizializzata da va_start e può essere reinizializzata dalle chiamate successive va_arg , argptr quindi punta all'inizio di un elenco di argomenti convertiti e trasmessi per l'output in base alle specifiche corrispondenti nell'argomento format . format ha la stessa forma e funzione dell'argomento format per printf. Nessuna di queste funzioni richiama va_end. Per una descrizione più completa di ogni funzione vprintf, vedere la descrizione della funzione corrispondente come indicato nella tabella precedente.

_vsnprintf differisce da in vsprintf quanto scrive non più di count byte in buffer.

Le versioni di queste funzioni con il prefisso w nel nome sono versioni a caratteri wide delle funzioni corrispondenti senza il prefisso w , in ognuna di queste funzioni buffer a caratteri wide e format sono stringhe di caratteri wide. Ogni altra funzione a caratteri wide si comporta in modo identico alla funzione SBCS corrispondente.

Le versioni di queste funzioni con _s e _p suffissi sono le versioni più sicure. Queste versioni convalidano le stringhe di formato. Genereranno un'eccezione se la stringa di formato non è corretta, ad esempio se vengono usati caratteri di formattazione non validi.

Le versioni di queste funzioni con il _p suffisso consentono di specificare l'ordine in cui gli argomenti forniti vengono sostituiti nella stringa di formato. Per altre informazioni, vedere printf_p Positional Parameters (Parametri posizionali printf_p).

Per vsprintf, vswprintf_vsnprintf e _vsnwprintf, se la copia si verifica tra stringhe che si sovrappongono, il comportamento non è definito.

Importante

Assicurarsi che format non sia una stringa definita dall'utente. Per altre informazioni, vedere Evitare sovraccarichi del buffer. Se si usano le versioni protette di queste funzioni (i _s suffissi o _p ), una stringa di formato fornita dall'utente potrebbe attivare un'eccezione di parametro non valida se la stringa fornita dall'utente contiene caratteri di formattazione non validi.

Vedi anche

I/O di flusso
fprintf, _fprintf_l, fwprintf_fwprintf_l
printf, _printf_l, wprintf_wprintf_l
sprintf, _sprintf_l, swprintf, _swprintf_l__swprintf_l
va_arg, va_copy, va_endva_start