_snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Lee datos con formato de una longitud especificada de una cadena. Estas son versiones de _snscanf, _snscanf_l, _snwscanf, _snwscanf_l con mejoras de seguridad, como se describe en características de seguridad de CRT.

int __cdecl _snscanf_s(  
   const char * input,  
   size_t length,  
   const char * format,  
   ...  
);  
int __cdecl _snscanf_s_l(  
   const char * input,  
   size_t length,  
   const char * format,  
   locale_t locale,  
   ...  
);  
int __cdecl _snwscanf_s(  
   const wchar_t * input,  
   size_t length,  
   const wchar_t * format,  
   ...  
);  
int __cdecl _snwscanf_s_l(  
   const wchar_t * input,  
   size_t length,  
   const wchar_t * format,  
   locale_t locale,  
   …  
);  

Parámetros

input
Cadena de entrada para examinar.

length
Número de caracteres que se van a examinar en input.

format
Uno o varios especificadores de formato.

... (optional)
Las variables que se utilizará para almacenar los valores extraídos de la cadena de entrada por los especificadores de formato en format.

locale
Configuración regional que se va a usar.

Ambas funciones devuelve el número de campos correctamente convertido y asignado; el valor devuelto no incluye los campos que se leyeron pero no asignados. Un valor devuelto de 0 indica que no se ha asignado ningún campo. El valor devuelto es EOF en caso de error o si el final de la cadena se alcanza antes de la primera conversión. Para obtener más información, consulte sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

Si input o format es una NULL se invoca el puntero, el controlador de parámetros no válidos, como se describe en validación del parámetro. Si la ejecución puede continuar, estas funciones devuelven EOF y establecen errno en EINVAL.

Para obtener información sobre estos y otros códigos de error, consulte _doserrno, errno, _sys_errlist y _sys_nerr.

Esta función es como sscanf_s excepto que proporciona la capacidad de especificar un número fijo de caracteres para examinar de la cadena de entrada. Para obtener más información, consulte sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

El parámetro de tamaño de búfer es necesario con los caracteres de campo de tipo c, C, s, S, y [. Para obtener más información, consulte scanf caracteres de campo de tipo.

System_CAPS_ICON_note.jpg Nota

El parámetro de tamaño es del tipo unsigned, no size_t.

Las versiones de estas funciones con el sufijo _l son idénticas salvo que usan el parámetro locale pasado en lugar de la configuración regional del subproceso actual.

Asignaciones de rutina de texto genérico

Rutina Tchar.h_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_sntscanf_s_snscanf_s_snscanf_s_snwscanf_s
_sntscanf_s_l_snscanf_s_l_snscanf_s_l_snwscanf_s_l
RutinaEncabezado necesario
_snscanf_s, _snscanf_s_l<stdio.h>
_snwscanf_s, _snwscanf_s_l<stdio.h> o <wchar.h>

Para obtener más información sobre compatibilidad, vea Compatibility en la introducción.

// crt_snscanf_s.c  
// This example scans a string of   
// numbers, using both the character  
// and wide character secure versions  
// of the snscanf function.  
  
#include <stdio.h>  
  
int main( )  
{  
    char        str1[] = "15 12 14...";  
    wchar_t     str2[] = L"15 12 14...";  
    char        s1[3];  
    wchar_t     s2[3];  
    int         i;  
    float       fp;  
  
    i = _snscanf_s( str1, 6,  "%s %f", s1, 3, &fp);  
    printf_s("_snscanf_s converted %d fields: ", i);  
    printf_s("%s and %f\n", s1, fp);  
  
    i = _snwscanf_s( str2, 6,  L"%s %f", s2, 3, &fp);  
    wprintf_s(L"_snwscanf_s converted %d fields: ", i);  
    wprintf_s(L"%s and %f\n", s2, fp);  
}  

_snscanf_s converted 2 fields: 15 and 12.000000  
_snwscanf_s converted 2 fields: 15 and 12.000000  

No es aplicable. Para llamar a la función estándar de C, use PInvoke. Para obtener más información, vea Ejemplos de invocación de plataforma.

scanf (especificación de ancho)

Mostrar: