Condividi tramite


_vscprintf_p, _vscprintf_p_l, _vscwprintf_p_vscwprintf_p_l

Restituisce il numero di caratteri nella stringa formattata utilizzando un puntatore a un elenco di argomenti, con la possibilità di specificare l'ordine in cui gli argomenti vengono utilizzati.

Sintassi

int _vscprintf_p(
   const char *format,
   va_list argptr
);
int _vscprintf_p_l(
   const char *format,
   _locale_t locale,
   va_list argptr
);
int _vscwprintf_p (
   const wchar_t *format,
   va_list argptr
);
int _vscwprintf_p_l(
   const wchar_t *format,
   _locale_t locale,
   va_list argptr
);

Parametri

format
Stringa di controllo del formato.

argptr
Puntatore a un elenco di argomenti.

locale
Impostazioni locali da usare.

Per altre informazioni, vedere Sintassi delle specifiche di formato.

Valore restituito

_vscprintf_p restituisce il numero di caratteri che verrebbero generati se la stringa a cui punta l'elenco di argomenti venisse stampata o inviata a un file o un buffer tramite i codici di formattazione specificati. Il valore restituito non include il carattere Null di terminazione. _vscwprintf_p esegue la stessa funzione per i caratteri wide.

Osservazioni:

Queste funzioni differiscono da _vscprintf e _vscwprintf solo per il fatto che supportano la possibilità di specificare l'ordine in cui vengono usati gli argomenti. Per altre informazioni, vedere printf_p Parametri posizionali.

Le versioni di queste funzioni con il suffisso _l sono identiche ad eccezione per il fatto che utilizzano il parametro delle impostazioni locali passato al posto di quelle del thread corrente.

Se format è un puntatore Null, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, le funzioni restituiranno -1 e imposteranno errno su EINVAL.

Importante

Se format è una stringa definita dall'utente, assicurarsi che abbia terminazione Null e il numero e il tipo corretti di parametri. Per altre informazioni, vedere Evitare sovraccarichi del buffer. A partire da Windows 10 versione 2004 (build 19041), la printf famiglia di funzioni stampa esattamente numeri a virgola mobile rappresentabili in base alle regole I edizione Enterprise E 754 per l'arrotondamento. Nelle versioni precedenti di Windows, i numeri a virgola mobile che terminano in '5' verrebbero sempre arrotondati. I edizione Enterprise E 754 indica che devono arrotondare alla cifra pari più vicina (nota anche come "Arrotondamento del banchiere"). Ad esempio, sia printf("%1.0f", 1.5) che printf("%1.0f", 2.5) devono essere arrotondati a 2. In precedenza, 1,5 arrotonderebbe a 2 e 2,5 arrotonderebbe a 3. Questa modifica influisce solo sui numeri rappresentabili esattamente. Ad esempio, 2.35 (che, se rappresentato in memoria, è più vicino a 2,350000000000000008) continua a arrotondare fino a 2,4. L'arrotondamento eseguito da queste funzioni ora rispetta anche la modalità di arrotondamento a virgola mobile impostata da fesetround. In precedenza, l'arrotondamento ha sempre scelto FE_TONEAREST il comportamento. Questa modifica interessa solo i programmi compilati con Visual Studio 2019 versione 16.2 e successive. Per usare il comportamento di arrotondamento a virgola mobile legacy, collegarsi a "legacy_stdio_float_rounding.obj".

Mapping di routine di testo generico

Routine TCHAR.H _UNICODE e _MBCS non definito _MBCS Definito _UNICODE Definito
_vsctprintf_p _vscprintf_p _vscprintf_p _vscwprintf_p
_vsctprintf_p_l _vscprintf_p_l _vscprintf_p_l _vscwprintf_p_l

Requisiti

Ciclo Intestazione obbligatoria
_vscprintf_p, _vscprintf_p_l <stdio.h>
_vscwprintf_p, _vscwprintf_p_l <stdio.h> oppure <wchar.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

Vedere l'esempio per vsprintf.

Vedi anche

Funzioni vprintf
_scprintf_p, _scprintf_p_l, _scwprintf_p_scwprintf_p_l
_vscprintf, _vscprintf_l, _vscwprintf_vscwprintf_l