¿Le resultó útil esta página?
Sus comentarios sobre este contenido son muy importantes. Háganos saber su opinión.
¿Tiene comentarios adicionales?
Caracteres restantes: 1500
sscanf, _sscanf_l, swscanf, _swscanf_l
and
div
eof
not
or
xor
Collapse the table of content
Expand the table of content
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

sscanf, _sscanf_l, swscanf, _swscanf_l

Datos con formato lectura de una cadena. Hay disponibles versiones más seguras de estas funciones; vea sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l.

int sscanf(
   const char *buffer,
   const char *format [,
   argument ] ... 
);
int _sscanf_l(
   const char *buffer,
   const char *format,
   locale_t locale [,
   argument ] ... 
);
int swscanf(
   const wchar_t *buffer,
   const wchar_t *format [,
   argument ] ... 
);
int _swscanf_l(
   const wchar_t *buffer,
   const wchar_t *format,
   locale_t locale [,
   argument ] ... 
);

buffer

Datos almacenados

format

Cadena de control de formato. Para obtener más información, vea Especificaciones de formato.

argument

Argumentos opcionales

locale

Configuración regional que se va a usar

Cada una de estas funciones devuelve el número de campos convierten y asignados correctamente; 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.

Si buffer o format es un puntero NULL, se invoca el controlador de parámetros no válidos, se describe en Validación de parámetros. Si la ejecución puede continuar, estas funciones devuelven -1 y establecen errno en EINVAL.

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

La función de sscanf lee datos de buffer en la ubicación especificada por cada argument. Cada argument debe ser un puntero a una variable con un tipo que corresponde a un especificador de tipo en format. El argumento format controla la interpretación de los campos de entrada y tiene el mismo formato y función que el argumento format para la función scanf. Si la copia tiene lugar entre cadenas que se superponen, el comportamiento es indefinido.

Nota de seguridad Nota sobre la seguridad

Al leer una cadena con sscanf, especifique siempre un ancho para el formato %s (por ejemplo, "%32s" en lugar de "%s"); si no se hace así, el formato incorrecto de la entrada puede provocar una saturación del búfer.

swscanf es una versión con caracteres anchos de sscanf; los argumentos a swscanf son cadenas de caracteres anchos. sscanf no controla los caracteres hexadecimales multibyte. swscanf no controla caracteres de "zona de compatibilidad" o hexadecimal de ancho completo de Unicode. De lo contrario, los objetos swscanf y sscanf se comportan de forma idéntica.

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

_stscanf

sscanf

sscanf

swscanf

_stscanf_l

_sscanf_l

_sscanf_l

_swscanf_l

Rutina

Encabezado necesario

sscanf , _sscanf_l

<stdio.h>

swscanf , _swscanf_l

<stdio.h> o <wchar.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

// crt_sscanf.c
// compile with: /W3
// This program uses sscanf to read data items
// from a string named tokenstring, then displays them.

#include <stdio.h>

int main( void )
{
   char  tokenstring[] = "15 12 14...";
   char  s[81];
   char  c;
   int   i;
   float fp;

   // Input various data from tokenstring:
   // max 80 character string:
   sscanf( tokenstring, "%80s", s ); // C4996
   sscanf( tokenstring, "%c", &c );  // C4996
   sscanf( tokenstring, "%d", &i );  // C4996
   sscanf( tokenstring, "%f", &fp ); // C4996
   // Note: sscanf is deprecated; consider using sscanf_s instead

   // Output the data read
   printf( "String    = %s\n", s );
   printf( "Character = %c\n", c );
   printf( "Integer:  = %d\n", i );
   printf( "Real:     = %f\n", fp );
}
String    = 15
Character = 1
Integer:  = 15
Real:     = 15,000000

Vea los métodos Parse, por ejemplo System::Double::Parse.

Mostrar:
© 2015 Microsoft