_cscanf, _cscanf_l, _cwscanf, _cwscanf_l

Lee datos con formato de la consola. Hay disponibles versiones más seguras de estas funciones; consulte _cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l.

Nota:

En Visual Studio 2015, la familia de funciones printf y scanf se declararon como inline y se movieron a los encabezados <stdio.h> y <conio.h>. Si va a migrar código anterior, es posible que vea error del enlazador LNK2019 en conexión con estas funciones. Para obtener más información, consulte Historial de cambios en Visual C++ 2003 - 2015.

Importante

Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución. Para obtener más información, vea Funciones de CRT no admitidas en aplicaciones de la Plataforma universal de Windows.

Sintaxis

int _cscanf(
   const char *format [,
   argument] ...
);
int _cscanf_l(
   const char *format,
   _locale_t locale [,
   argument] ...
);
int _cwscanf(
   const wchar_t *format [,
   argument] ...
);
int _cwscanf_l(
   const wchar_t *format,
   _locale_t locale [,
   argument] ...
);

Parámetros

format
Cadena de control de formato.

argument
Parámetros opcionales.

locale
Configuración regional que se va a usar.

Valor devuelto

Número de campos que se convirtieron y asignaron correctamente. El valor devuelto no incluye los campos que se han leído pero no se han asignado. El valor devuelto es EOF para un intento de lectura al final del archivo. También EOF se puede devolver cuando se redirige la entrada del teclado en el nivel de línea de comandos del sistema operativo. Un valor devuelto de cero significa que no se asignó ningún campo.

Comentarios

La función _cscanf lee datos directamente de la consola en las ubicaciones especificadas por argument. La _getche función se usa para leer caracteres. Cada parámetro opcional debe ser un puntero a una variable con un tipo que se corresponda con un especificador de tipo en format. El formato controla la interpretación de los campos de entrada y tiene el mismo formulario y función que el format parámetro de la scanf función. Aunque _cscanf normalmente devuelve el carácter de entrada, no lo hace si la última llamada era a _ungetch.

Esta función valida sus parámetros. Si el formato es NULL, se invoca el controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, errno está establecido en EINVAL y la función devuelve EOF.

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
_tcscanf _cscanf _cscanf _cwscanf
_tcscanf_l _cscanf_l _cscanf_l _cwscanf_l

Requisitos

Routine Encabezado necesario
_cscanf, _cscanf_l <conio.h>
_cwscanf, _cwscanf_l <conio.h> o <wchar.h>

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

Ejemplo

// crt_cscanf.c
// compile with: /c /W3
/* This program prompts for a string
* and uses _cscanf to read in the response.
* Then _cscanf returns the number of items
* matched, and the program displays that number.
*/

#include <stdio.h>
#include <conio.h>

int main( void )
{
   int   result, i[3];

   _cprintf_s( "Enter three integers: ");
   result = _cscanf( "%i %i %i", &i[0], &i[1], &i[2] ); // C4996
   // Note: _cscanf is deprecated; consider using _cscanf_s instead
   _cprintf_s( "\r\nYou entered " );
   while( result-- )
      _cprintf_s( "%i ", i[result] );
   _cprintf_s( "\r\n" );
}
1 2 3
Enter three integers: 1 2 3
You entered 3 2 1

Consulte también

E/S de consola y puerto
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf, _fscanf_l, fwscanf, _fwscanf_l
scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l
sscanf, _sscanf_l, swscanf, _swscanf_l