_snscanf, _snscanf_l, _snwscanf, _snwscanf_l

Lee datos con formato de una longitud especificada a partir de una cadena. Hay disponibles versiones más seguras de estas funciones; consulte _snscanf_s, _snscanf_s_l, _snwscanf_s, _snwscanf_s_l.

Sintaxis

int __cdecl _snscanf(
   const char * input,
   size_t length,
   const char * format,
   ...
);
int __cdecl _snscanf_l(
   const char * input,
   size_t length,
   const char * format,
   _locale_t locale,
   ...
);
int __cdecl _snwscanf(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   ...
);
int __cdecl _snwscanf_l(
   const wchar_t * input,
   size_t length,
   const wchar_t * format,
   _locale_t locale,
   ...
);

Parámetros

input
Cadena de entrada que se va a examinar.

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

format
Uno o varios especificadores de formato.

...
Variables opcionales que se usarán 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.

Valor devuelto

Ambas funciones devuelven el número de campos convertidos y asignados correctamente; El valor devuelto no incluye campos leídos 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, vea sscanf.

Si input o format es un NULL puntero, o si length es menor o igual que cero, se invoca al controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones devuelven EOF y establecen errno en EINVAL.

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

Comentarios

Esta función es como sscanf, excepto que permite especificar un número fijo de caracteres que se van a examinar desde la cadena de entrada. Para obtener más información, vea sscanf.

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 rutinas de texto genérico

Rutina Tchar.h _UNICODE y _MBCS no definidos _MBCS definido _UNICODE definido
_sntscanf _snscanf _snscanf _snwscanf
_sntscanf_l _snscanf_l _snscanf_l _snwscanf_l

Requisitos

Routine Encabezado necesario
_snscanf, _snscanf_l <stdio.h>
_snwscanf, _snwscanf_l <stdio.h> o <wchar.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Ejemplo

// crt_snscanf.c
// compile with: /W3

#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( str1, 6,  "%s %f", s1, &fp); // C4996
   // Note: _snscanf is deprecated; consider using _snscanf_s instead
   printf("_snscanf converted %d fields: ", i);
   printf("%s and %f\n", s1, fp);

   i = _snwscanf( str2, 6,  L"%s %f", s2, &fp); // C4996
   // Note: _snwscanf is deprecated; consider using _snwscanf_s instead
   wprintf(L"_snwscanf converted %d fields: ", i);
   wprintf(L"%s and %f\n", s2, fp);
}
_snscanf converted 2 fields: 15 and 12.000000
_snwscanf converted 2 fields: 15 and 12.000000

Consulte también

scanf (Especificación de ancho)