Compartir por


funcionesvprintf

Cada una de las funciones vprintf toma un puntero a una lista de argumentos y, después, aplica formato a los datos determinados y los escribe en un destino concreto. Las funciones difieren de varias maneras: en la validación de parámetros, si las funciones toman cadenas de caracteres de un solo byte o ancho, el destino de salida y la compatibilidad para especificar los parámetros de orden se usan en la cadena de 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

Comentarios

Las funciones vprintf son similares a sus funciones equivalentes, como se muestra en la tabla siguiente. Sin embargo, cada función vprintf acepta un puntero a una lista de argumentos, mientras que cada una de las funciones equivalentes acepta una lista de argumentos.

Estas funciones aplican formato a los datos para la salida en los destinos como se indica a continuación.

Función Función equivalente Destino de salida Validación de parámetros Compatibilidad con parámetros posicionales
_vcprintf _cprintf Consola Buscar valores Null. no
_vcwprintf _cwprintf Consola Buscar valores Null. no
vfprintf fprintf stream Buscar valores Null. no
vfprintf_p fprintf_p stream Buscar valor Null y formato válido.
vfprintf_s fprintf_s stream Buscar valor Null y formato válido. no
vfwprintf fwprintf stream Buscar valores Null. no
vfwprintf_p fwprintf_p stream Buscar valor Null y formato válido.
vfwprintf_s fwprintf_s stream Buscar valor Null y formato válido. no
vprintf printf stdout Buscar valores Null. no
vprintf_p printf_p stdout Buscar valor Null y formato válido.
vprintf_s printf_s stdout Buscar valor Null y formato válido. no
vwprintf wprintf stdout Buscar valores Null. no
vwprintf_p wprintf_p stdout Buscar valor Null y formato válido.
vwprintf_s wprintf_s stdout Buscar valor Null y formato válido. no
vsprintf sprintf memoria a la que apunta buffer Buscar valores Null. no
vsprintf_p sprintf_p memoria a la que apunta buffer Buscar valor Null y formato válido.
vsprintf_s sprintf_s memoria a la que apunta buffer Buscar valor Null y formato válido. no
vswprintf swprintf memoria a la que apunta buffer Buscar valores Null. no
vswprintf_p swprintf_p memoria a la que apunta buffer Buscar valor Null y formato válido.
vswprintf_s swprintf_s memoria a la que apunta buffer Buscar valor Null y formato válido. no
_vscprintf _vscprintf memoria a la que apunta buffer Buscar valores Null. no
_vscwprintf _vscwprintf memoria a la que apunta buffer Buscar valores Null. no
_vsnprintf _snprintf memoria a la que apunta buffer Buscar valores Null. no
_vsnwprintf _snwprintf memoria a la que apunta buffer Buscar valores Null. no

El argumento argptr es del tipo va_list, que se define en VARARGS.H y STDARG.H. La argptr variable se debe inicializar mediante va_start y se puede reinicializar mediante llamadas posteriores va_arg ; argptr a continuación, apunta al principio de una lista de argumentos que se convierten y transmiten para la salida según las especificaciones correspondientes del format argumento. format tiene la misma forma y función que el format argumento para printf. Ninguna de estas funciones invoca va_end. Para obtener una descripción más completa de cada función vprintf, vea la descripción de su función equivalente, como se muestra en la tabla anterior.

_vsnprintf difiere de vsprintf en que escribe no más de count bytes en buffer.

Las versiones de estas funciones con el infijo w en el nombre son versiones de caracteres anchos de las funciones correspondientes sin el infijo w ; en cada una de estas funciones de caracteres anchos, buffer y format son cadenas de caracteres anchos. De lo contrario, cada función de caracteres anchos tiene un comportamiento idéntico a su función de SBCS equivalente.

Las versiones de estas funciones con _s sufijos y _p son las versiones más seguras. Estas versiones validan las cadenas de formato. Generarán una excepción si la cadena de formato no tiene el formato correcto (por ejemplo, si se usan caracteres de formato no válidos).

Las versiones de estas funciones con el _p sufijo permiten especificar el orden en el que se sustituyen los argumentos proporcionados en la cadena de formato. Para obtener más información, consulte printf_p (Parámetros de posición).

Para vsprintf, vswprintf_vsnprintf y _vsnwprintf, si la copia se produce entre cadenas que se superponen, el comportamiento no está definido.

Importante

Asegúrese de que format no es una cadena definida por el usuario. Para obtener más información, consulte Evitar saturaciones del búfer. Si usa las versiones seguras de estas funciones (ya sea los sufijos o _p ), una cadena de formato proporcionada por el _s usuario podría desencadenar una excepción de parámetro no válida si la cadena proporcionada por el usuario contiene caracteres de formato no válidos.

Consulte también

E/S de secuencia
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_end, va_start