Compartir a través de


_cscanf_s, _cscanf_s_l, _cwscanf_s, _cwscanf_s_l

Datos con formato lectura de la consola.Éstas son versiones más seguras de _cscanf, _cscanf_l, _cwscanf, _cwscanf_l con mejoras de seguridad como se describe en Características de seguridad en CRT.

Nota importanteImportante

Esta API no se puede utilizar en las aplicaciones que se ejecutan en tiempo de ejecución de Windows.Para obtener más información, vea Funciones CRT no compatibles con /ZW.

int _cscanf_s( 
   const char *format [,
   argument] ... 
);
int _cscanf_s_l( 
   const char *format,
   locale_t locale [,
   argument] ... 
);
int _cwscanf_s( 
   const wchar_t *format [,
   argument] ... 
);
int _cwscanf_s_l( 
   const wchar_t *format,
   locale_t locale [,
   argument] ... 
);

Parámetros

  • format
    Cadena de la Formato-CONTROL.

  • argument
    Parámetros opcionales.

  • locale
    La configuración regional a utilizar.

Valor devuelto

El número de campos que se convierten y asignados correctamente.El valor devuelto no incluye los campos que se leyeron pero no asignados.El valor devuelto es EOF para que un intento lea al final del archivo.Esto puede ocurrir cuando la entrada de teclado se redirige en el nivel de la línea de comandos del sistema operativo.Devuelve un valor de 0 indica que no se asignó ningún campos.

Estas funciones validan sus parámetros.Si format es un puntero NULL, estas funciones se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Si la ejecución puede continuar, estas funciones EOF return y errno se establecen en EINVAL.

Comentarios

La función de _cscanf_s lee datos directamente de la consola en las ubicaciones especificadas por argument.La función de _getche se utiliza para leer los caracteres.Cada parámetro opcional debe ser un puntero a una variable con un tipo que corresponde a un especificador de tipo en format.Controles de formato la interpretación de los campos de entrada y tienen el mismo formato y función que el parámetro de format para la función de scanf_s.Mientras _cscanf_s repite normalmente el carácter de entrada, no lo hace cuando la última llamada estaba a _ungetch.

Como otras versiones seguras de funciones en la familia de scanf,_cscanf_s y _cswscanf_s requieren los argumentos de tamaño por caracteres de campo c, C, s, S, y [ de tipo.Para obtener más información, vea especificación de ancho scanf.

[!NOTA]

El parámetro size es de unsigned tipo, no size_t.

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

Asignaciones de la rutina de Genérico- texto

Rutina de TCHAR.H

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_tcscanf_s

_cscanf_s

_cscanf_s

_cwscanf_s

_tcscanf_s_l

_cscanf_s_l

_cscanf_s_l

_cwscanf_s_l

Requisitos

Rutina

Encabezado necesario

_cscanf_s,_cscanf_s_l

<conio.h>

_cwscanf_s, _cwscanf_s_l

<conio.h> o <wchar.h>

Para obtener más información de compatibilidad, vea Compatibilidad en la Introducción.

Bibliotecas

Todas las versiones de Bibliotecas en tiempo de ejecución de C.

Ejemplo

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

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

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

   result = _cscanf_s( "%i %i %i", &n[0], &n[1], &n[2] );
   _cprintf_s( "\r\nYou entered " );
   for( i=0; i<result; i++ )
      _cprintf_s( "%i ", n[i] );
   _cprintf_s( "\r\n" );
}

Entrada

1 2 3

Output

You entered 1 2 3

Vea también

Referencia

E/S de la consola y de puerto

_cprintf, _cprintf_l, _cwprintf, _cwprintf_l

fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l

scanf_s, _scanf_s_l, wscanf_s, _wscanf_s_l

sscanf_s, _sscanf_s_l, swscanf_s, _swscanf_s_l