vscanf, vwscanf

 

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 del flujo de entrada estándar. Existen versiones más seguras de estas funciones; consulte vscanf_s, vwscanf_s.

int vscanf(  
   const char *format,  
   va_list arglist  
);  
int vwscanf(  
   const wchar_t *format,  
   va_list arglist  
);  
  

Parámetros

format
Cadena de control de formato.

arglist
Lista de argumentos de variable.

Devuelve el número de campos que se convierten correctamente y que se asignan; 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.

Si 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 errno, _doserrno, _sys_errlist y _sys_nerr.

El vscanf función lee los datos de la secuencia de entrada estándar stdin y escribe los datos en las ubicaciones que se proporcionan en el arglist lista de argumentos. Cada argumento de la lista debe ser un puntero a una variable de un tipo que se corresponde con un especificador de tipo en format. Si la copia tiene lugar entre cadenas que se superponen, el comportamiento es indefinido.

System_CAPS_ICON_important.jpg Importante

Al usar vscanf para leer una cadena, especifique siempre un ancho para el %s formato (por ejemplo, "%32s" en lugar de "%s"); en caso contrario, una entrada con formato incorrecto puede producir una saturación del búfer. Como alternativa, puede usar vscanf_s, vwscanf_s o fgets.

vwscanf es una versión con caracteres anchos de vscanf; el argumento format para vwscanf es una cadena de caracteres anchos. vwscanf y vscanf se comportan exactamente igual si el flujo se abre en modo ANSI. vscanfno admite la entrada desde un flujo UNICODE.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H_UNICODE y _MBCS no definidos_MBCS definido_UNICODE definido
_vtscanfvscanfvscanfvwscanf

Para obtener más información, consulte campos de especificación de formato: funciones scanf y wscanf.

RutinaEncabezado necesario
vscanf<stdio.h>
vwscanf<stdio.h> o <wchar.h>

La consola no se admite en las aplicaciones de Tienda Windows 8.x. Se deben redirigir los identificadores estándar de flujo que están asociados a la consola, stdin, stdout y stderr, antes de que las funciones en tiempo de ejecución de C puedan usarlos en aplicaciones de Tienda Windows 8.x. Para obtener más información sobre compatibilidad, vea Compatibilidad.

// crt_vscanf.c  
// compile with: /W3  
// This program uses the vscanf and vwscanf functions  
// to read formatted input.  
  
#include <stdio.h>  
#include <stdarg.h>  
  
int call_vscanf(char *format, ...)  
{  
    int result;  
    va_list arglist;  
    va_start(arglist, format);  
    result = vscanf(format, arglist);  
    va_end(arglist);  
    return result;  
}  
  
int call_vwscanf(wchar_t *format, ...)  
{  
    int result;  
    va_list arglist;  
    va_start(arglist, format);  
    result = vwscanf(format, arglist);  
    va_end(arglist);  
    return result;  
}  
  
int main( void )  
{  
    int   i, result;  
    float fp;  
    char  c, s[81];  
    wchar_t wc, ws[81];  
    result = call_vscanf( "%d %f %c %C %80s %80S", &i, &fp, &c, &wc, s, ws );  
    printf( "The number of fields input is %d\n", result );  
    printf( "The contents are: %d %f %c %C %s %S\n", i, fp, c, wc, s, ws);  
    result = call_vwscanf( L"%d %f %hc %lc %80S %80ls", &i, &fp, &c, &wc, s, ws );  
    wprintf( L"The number of fields input is %d\n", result );  
    wprintf( L"The contents are: %d %f %C %c %hs %s\n", i, fp, c, wc, s, ws);  
}  
  

  
      71 98.6 h z Byte characters  
36 92.3 y n Wide charactersThe number of fields input is 6  
The contents are: 71 98.599998 h z Byte characters  
The number of fields input is 6  
The contents are: 36 92.300003 y n Wide characters  

Compatibilidad de punto flotante
E/S de secuencia
Configuración regional
fscanf, _fscanf_l, fwscanf, _fwscanf_l
printf, _printf_l, wprintf, _wprintf_l
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
sscanf, _sscanf_l, swscanf, _swscanf_l
vscanf_s, vwscanf_s

Mostrar: