共用方式為


_vscprintf_p, _vscprintf_p_l, _vscwprintf_p, _vscwprintf_p_l

Returns the number of characters in the formatted string using a pointer to a list of arguments, with the ability to specify the order in which the arguments are used.

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

Parameters

  • format
    Format-control string.

  • argptr
    Pointer to list of arguments.

  • locale
    The locale to use.

For more information, see Format Specifications.

Return Value

_vscprintf_p returns the number of characters that would be generated if the string pointed to by the list of arguments was printed or sent to a file or buffer using the specified formatting codes. The value returned does not include the terminating null character. _vscwprintf_p performs the same function for wide characters.

Remarks

These functions differ from _vscprintf and _vscwprintf only in that they support the ability to specify the order in which the arguments are used. For more information, see printf_p Positional Parameters.

The versions of these functions with the _l suffix are identical except that they use the locale parameter passed in instead of the current thread locale.

If format is a null pointer, the invalid parameter handler is invoked, as described in Parameter Validation. If execution is allowed to continue, the functions return -1 and set errno to EINVAL.

Security noteSecurity Note

Ensure that if format is a user-defined string, it is null terminated and has the correct number and type of parameters. For more information, see Avoiding Buffer Overruns.

Generic-Text Routine Mappings

TCHAR.H routine

_UNICODE & _MBCS not defined

_MBCS defined

_UNICODE defined

_vsctprintf_p

_vscprintf_p

_vscprintf_p

_vscwprintf_p

_vsctprintf_p_l

_vscprintf_p_l

_vscprintf_p_l

_vscwprintf_p_l

Requirements

Routine

Required header

_vscprintf_p, _vscprintf_p_l

<stdio.h>

_vscwprintf_p, _vscwprintf_p_l

<stdio.h> or <wchar.h>

For additional compatibility information, see Compatibility in the Introduction.

Example

See the example for vsprintf.

See Also

Reference

vprintf Functions

_scprintf_p, _scprintf_p_l, _scwprintf_p, _scwprintf_p_l

_vscprintf, _vscprintf_l, _vscwprintf, _vscwprintf_l