_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.
Importante |
---|
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
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l