_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
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per