Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Escriba los datos con formato en una cadena con la capacidad de especificar el orden en que los parámetros se utilizan en la cadena de formato.
int _sprintf_p(
char *buffer,
size_t sizeOfBuffer,
const char *format [,
argument] ...
);
int _sprintf_p_l(
char *buffer,
size_t sizeOfBuffer,
const char *format,
locale_t locale [,
argument] ...
);
int _swprintf_p(
wchar_t *buffer,
size_t sizeOfBuffer,
const wchar_t *format [,
argument]...
);
int _swprintf_p_l(
wchar_t *buffer,
size_t sizeOfBuffer,
const wchar_t *format,
locale_t locale [,
argument] …
);
Parámetros
buffer
Ubicación de almacenamiento para los resultadossizeOfBuffer
Número máximo de caracteres a almacenar.format
cadena de la Formato-CONTROLargument
argumentos opcionaleslocale
la configuración regional a utilizar.
Para obtener más información, vea Especificaciones de formato.
Valor devuelto
El número de caracteres con tipo, o – 1 si se ha producido un error.
Comentarios
La función de _sprintf_pda formato y almacena una serie de caracteres y valores en buffer.Cada argument (si existe) se convierte y salida según la especificación correspondiente de formato en format.El formato consta de los caracteres ordinarios y tiene el mismo formato y función que el argumento de format para printf_p.Un carácter de NULL se anexan después del último carácter con tipo.Si la copia aparece entre cadenas superpuestas, el comportamiento es indefinido.La diferencia entre _sprintf_p y sprintf_s es que _sprintf_p admite parámetros posicionales, que permite la especificación del orden en el que los argumentos se utilizan en la cadena de formato.Para obtener más información, vea parámetros posicionales De printf_p.
_swprintf_p es una versión con caracteres anchos de _sprintf_p; los argumentos de puntero a _swprintf_p son cadenas de caracteres.Detección de errores de codificación en _swprintf_p puede diferir de que en _sprintf_p._swprintf_p y fwprintf_p se comportan exactamente igual excepto que salida de las etiquetas de _swprintf_p en una cadena y no a un destino de FILEy, a _swprintf_p requiere el parámetro de countespecificar el número máximo de caracteres que se escriba.Las versiones de estas funciones con el sufijo de _l son idénticas salvo que utilizan el parámetro locale pasado en lugar de la configuración regional del subproceso actual.
_sprintf_p devuelve el número de bytes almacenados en buffer, sin contar el carácter de NULL que finaliza._swprintf_pdevuelve el número de caracteres anchos almacenados en buffer, sin contar el carácter ancho de NULL que finaliza.Si buffer o format es un puntero NULL, o si la cadena de formato contiene caracteres de formato no válidos, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Si la ejecución puede continuar, estas funciones devuelven -1 y errno establecido en EINVAL.
Asignaciones de la rutina de texto genérico
rutina de TCHAR.H |
_UNICODE y _MBCS no definido |
_MBCS definido |
_UNICODE definido |
|---|---|---|---|
_stprintf_p |
_sprintf_p |
_sprintf_p |
_swprintf_p |
_stprintf_p_l |
_sprintf_p_l |
_sprintf_p_l |
_swprintf_p_l |
Requisitos
rutina |
Encabezado necesario |
|---|---|
_sprintf_p, _sprintf_p_l |
<stdio.h> |
_swprintf_p, _swprintf_p_l |
<stdio.h> o <wchar.h> |
Para obtener información adicional de compatibilidad, vea compatibilidad en la Introducción.
Ejemplo
// crt_sprintf_p.c
// This program uses _sprintf_p to format various
// data and place them in the string named buffer.
//
#include <stdio.h>
int main( void )
{
char buffer[200],
s[] = "computer", c = 'l';
int i = 35,
j;
float fp = 1.7320534f;
// Format and print various data:
j = _sprintf_p( buffer, 200,
" String: %s\n", s );
j += _sprintf_p( buffer + j, 200 - j,
" Character: %c\n", c );
j += _sprintf_p( buffer + j, 200 - j,
" Integer: %d\n", i );
j += _sprintf_p( buffer + j, 200 - j,
" Real: %f\n", fp );
printf( "Output:\n%s\ncharacter count = %d\n",
buffer, j );
}
// crt_swprintf_p.c
// This is the wide character example which
// also demonstrates _swprintf_p returning
// error code.
#include <stdio.h>
#define BUFFER_SIZE 100
int main( void )
{
wchar_t buffer[BUFFER_SIZE];
int len;
len = _swprintf_p(buffer, BUFFER_SIZE, L"%2$s %1$d",
0, L" marbles in your head.");
_printf_p( "Wrote %d characters\n", len );
// _swprintf_p fails because string contains WEOF (\xffff)
len = _swprintf_p(buffer, BUFFER_SIZE, L"%s",
L"Hello\xffff world" );
_printf_p( "Wrote %d characters\n", len );
}
Equivalente en .NET Framework
Vea también
Referencia
_fprintf_p, _fprintf_p_l, _fwprintf_p, _fwprintf_p_l
fprintf, _fprintf_l, fwprintf, _fwprintf_l
_printf_p, _printf_p_l, _wprintf_p, _wprintf_p_l
printf, _printf_l, wprintf, _wprintf_l
scanf, _scanf_l, wscanf, _wscanf_l
sscanf, _sscanf_l, swscanf, _swscanf_l