Compartir a través de


Función wsprintfA (winuser.h)

Escribe datos con formato en el búfer especificado. Los argumentos se convierten y copian en el búfer de salida según la especificación de formato correspondiente en la cadena de formato. La función anexa un carácter NULO de terminación a los caracteres que escribe, pero el valor devuelto no incluye el carácter nulo de terminación en su recuento de caracteres.

Nota No usar. Considere la posibilidad de usar una de las siguientes funciones en su lugar: StringCbPrintf, StringCbPrintfEx, StringCchPrintfo StringCchPrintfEx. Consulte Consideraciones de seguridad.
 

Sintaxis

int WINAPIV wsprintfA(
  [out] LPSTR  unnamedParam1,
  [in]  LPCSTR unnamedParam2,
        ...    
);

Parámetros

[out] unnamedParam1

Tipo: LPTSTR de

Búfer que va a recibir la salida con formato. El tamaño máximo del búfer es de 1024 bytes.

[in] unnamedParam2

Tipo: LPCTSTR de

Las especificaciones de control de formato. Además de los caracteres ASCII normales, aparece una especificación de formato para cada argumento en esta cadena. Para obtener más información sobre la especificación de formato, vea la sección Comentarios.

...

Uno o varios argumentos opcionales. El número y el tipo de parámetros de argumento dependen de las especificaciones de control de formato correspondientes en el parámetro lpFmt.

Valor devuelto

Tipo: int

Si la función se ejecuta correctamente, el valor devuelto es el número de caracteres almacenados en el búfer de salida, sin contar el carácter nulo de terminación.

Si se produce un error en la función, el valor devuelto es menor que la longitud de la salida esperada. Para obtener información de error extendida, llame a GetLastError.

Observaciones

La cadena format-control contiene especificaciones de formato que determinan el formato de salida de los argumentos siguiendo el parámetro lpFmt. Las especificaciones de formato, que se describen a continuación, siempre comienzan con un signo de porcentaje (%). Si un signo de porcentaje va seguido de un carácter que no tiene ningún significado como campo de formato, el carácter no tiene formato (por ejemplo, %% genera un carácter de signo de porcentaje único).

La cadena de control de formato se lee de izquierda a derecha. Cuando se encuentra la primera especificación de formato (si existe), hace que el valor del primer argumento después de la cadena de control de formato se convierta y copie en el búfer de salida según la especificación de formato. La segunda especificación de formato hace que el segundo argumento se convierta y copie, etc. Si hay más argumentos que especificaciones de formato, se omiten los argumentos adicionales. Si no hay suficientes argumentos para todas las especificaciones de formato, los resultados no están definidos.

Una especificación de formato tiene el formato siguiente:

%[-][#][0][ancho][.precision]tipo

Cada campo es un carácter único o un número que indica una opción de formato determinada. El tipo caracteres que aparecen después del último campo de formato opcional determinan si el argumento asociado se interpreta como un carácter, una cadena o un número. La especificación de formato más simple contiene solo el signo de porcentaje y un carácter de tipo (por ejemplo, %s). Los campos opcionales controlan otros aspectos del formato. A continuación se muestran los campos opcionales y obligatorios y sus significados.

Campo Significado
- Rellene la salida con espacios en blanco o ceros a la derecha para rellenar el ancho del campo, justificando la salida a la izquierda. Si se omite este campo, la salida se rellena a la izquierda y se justifica a la derecha.
# Prefijo de valores hexadecimales con 0x (minúsculas) o 0X (mayúsculas).
0 Rellene el valor de salida con ceros para rellenar el ancho del campo. Si se omite este campo, el valor de salida se rellena con espacios en blanco.
de ancho Copie el número mínimo de caracteres especificado en el búfer de salida. El ancho campo es un entero no negativo. La especificación de ancho nunca hace que se trunquen un valor; si el número de caracteres del valor de salida es mayor que el ancho especificado o si el ancho campo no está presente, se imprimen todos los caracteres del valor, sujeto a la especificación de precisión.
. de precisión En el caso de los números, copie el número mínimo especificado de dígitos en el búfer de salida. Si el número de dígitos del argumento es menor que la precisión especificada, el valor de salida se rellena a la izquierda con ceros. El valor no se trunca cuando el número de dígitos supera la precisión especificada. Si la precisión especificada es 0 o se omite por completo, o si el punto (.) aparece sin un número después, la precisión se establece en 1.

En el caso de las cadenas, copie el número máximo de caracteres especificado en el búfer de salida.

tipo Genera el argumento correspondiente como un carácter, una cadena o un número. Este campo puede ser cualquiera de los siguientes valores.
c
Carácter único. Este valor se interpreta como char tipo wsprintfA y WCHAR wsprintfW. Nota wsprintf es una macro definida como wsprintfA (unicode no definido) o wsprintfW (unicode definido).
C
Carácter único. Este valor se interpreta como tipo WCHAR por wsprintfA y CHAR por wsprintfW. Nota wsprintf es una macro definida como wsprintfA (unicode no definido) o wsprintfW (unicode definido).
d
Entero decimal con signo. Este valor es equivalente a i.
hc, hC
Carácter único. Si el carácter tiene un valor numérico de cero, se omite. Este valor siempre se interpreta como tipo CHAR, incluso cuando la aplicación que realiza la llamada define Unicode.
hd
Argumento entero corto con signo.
hs, hS
Cuerda. Este valor siempre se interpreta como tipo LPSTR, incluso cuando la aplicación que realiza la llamada define Unicode.
hu
Entero corto sin signo.
i
Entero decimal con signo. Este valor es equivalente a d.
Ix, IX
Entero hexadecimal sin signo de 64 bits en minúsculas o mayúsculas en plataformas de 64 bits, entero hexadecimal sin signo de 32 bits en plataformas de 32 bits.
lc, lC
Carácter único. Si el carácter tiene un valor numérico de cero, se omite. Este valor siempre se interpreta como tipo WCHAR, incluso cuando la aplicación que realiza la llamada define Unicode.
ld
Entero con signo largo. Este valor es equivalente a li.
li
Entero con signo largo. Este valor es equivalente a ld.
ls, lS
Cuerda. Este valor siempre se interpreta como tipo LPWSTR, incluso cuando la aplicación que realiza la llamada no define Unicode. Este valor es equivalente a ws.
lu
Entero largo sin signo.
lx, lX
Entero hexadecimal sin signo largo en minúsculas o mayúsculas.
p
Puntero. La dirección se imprime con hexadecimal.
s
Cuerda. Este valor se interpreta como tipo LPSTRwsprintfA y LPWSTR por wsprintfW. Nota wsprintf es una macro definida como wsprintfA (unicode no definido) o wsprintfW (unicode definido).
S
Cuerda. Este valor se interpreta como tipo LPWSTRwsprintfA y LPSTRwsprintfW. Nota wsprintf es una macro definida como wsprintfA (unicode no definido) o wsprintfW (unicode definido).
u
Argumento entero sin signo.
x, X
Entero hexadecimal sin signo en minúsculas o mayúsculas.
 
Nota Es importante tener en cuenta que wsprintf usa la convención de llamada de C (_cdecl), en lugar de la convención de llamada estándar (_stdcall). Como resultado, es responsabilidad del proceso de llamada quitar los argumentos de la pila y los argumentos se insertan en la pila de derecha a izquierda. En los módulos del lenguaje C, el compilador de C realiza esta tarea.
 
Para usar búferes de más de 1024 bytes, use _snwprintf. Para obtener más información, consulte la documentación de la biblioteca en tiempo de ejecución de C.

Nota

El encabezado winuser.h define wsprintf como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winuser.h (incluya Windows.h)
biblioteca de User32.lib
DLL de User32.dll

Consulte también

conceptual de

de referencia de

StringCbPrintf

StringCbPrintfEx

StringCbVPrintf

StringCbVPrintfEx

StringCchPrintf

stringCchPrintfEx

StringCchVPrintf

stringCchVPrintfEx

cadenas de

wvsprintf