_cgets_s
, _cgetws_s
Obtiene una cadena de caracteres de la consola. Estas versiones de y _cgetws
tienen mejoras de seguridad, como se describe en Características de _cgets
seguridad de CRT.
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
errno_t _cgets_s(
char *buffer,
size_t numberOfElements,
size_t *pSizeRead
);
errno_t _cgetws_s(
wchar_t *buffer
size_t numberOfElements,
size_t *pSizeRead
);
template <size_t size>
errno_t _cgets_s(
char (&buffer)[size],
size_t *pSizeRead
); // C++ only
template <size_t size>
errno_t _cgetws_s(
wchar_t (&buffer)[size],
size_t *pSizeRead
); // C++ only
Parámetros
buffer
Ubicación de almacenamiento de los datos.
numberOfElements
Tamaño del búfer en caracteres anchos o de un solo byte, que también es el número máximo de caracteres que se va a leer.
pSizeRead
Número de caracteres que realmente se va a leer.
Valor devuelto
El valor devuelto es cero si es correcto; en caso contrario, un código de error si se produce un error.
Condiciones del error
buffer |
numberOfElements |
pSizeRead |
Return | Contenido de buffer |
---|---|---|---|---|
NULL |
cualquiera | cualquiera | EINVAL |
N/D |
no NULL |
zero | cualquiera | EINVAL |
no modificado |
no NULL |
cualquiera | NULL |
EINVAL |
cadena de longitud cero |
Comentarios
_cgets_s
y _cgetws_s
leen una cadena de la consola y la copian (con un terminador null) en buffer
. _cgetws_s
es la versión de caracteres anchos de la función; aparte del tamaño de carácter, el comportamiento de estas dos funciones es idéntico. El tamaño máximo de la cadena que se va a leer se pasa como parámetro numberOfElements
. Este tamaño debe incluir un carácter adicional para el carácter null de terminación. El número real de caracteres que se leen se coloca en pSizeRead
.
Si se produce un error durante la operación o en la validación de los parámetros, se invoca al controlador de parámetros no válidos, como se describe en Validación de parámetros. Si la ejecución puede continuar, errno
se establece en EINVAL
y EINVAL
se devuelve .
En C++, las sobrecargas de plantilla simplifican el uso de estas funciones. Las sobrecargas pueden deducir automáticamente la longitud del búfer, lo que elimina la necesidad de especificar un argumento size. También pueden reemplazar automáticamente las funciones más antiguas y menos seguras por sus homólogos más recientes y seguros. Para obtener más información, consulte Sobrecargas de plantilla seguras.
Las versiones de la biblioteca de depuración de estas funciones rellenan primero el búfer con 0xFE. Para deshabilitar este comportamiento, use _CrtSetDebugFillThreshold
.
De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Rutina Tchar.h | _UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_cgetts_s |
_cgets_s |
_cgets_s |
_cgetws_s |
Requisitos
Routine | Encabezado necesario |
---|---|
_cgets_s |
<conio.h> |
_cgetws_s |
<conio.h> o <wchar.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.