gets_s, _getws_s
Obtenga una línea de la secuencia de stdin.Éstas son versiones de obtiene, los _getws con mejoras de seguridad como se describe en Características de seguridad en CRT.
char *gets_s(
char *buffer,
size_t sizeInCharacters
);
wchar_t *_getws_s(
wchar_t *buffer,
size_t sizeInCharacters
);
template <size_t size>
char *gets_s(
char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws_s(
wchar_t (&buffer)[size]
); // C++ only
Parámetros
[out] buffer
Ubicación de almacenamiento para la cadena de entrada.[in] sizeInCharacters
Tamaño del búfer.
Valor devuelto
Devuelve buffer si es correcto.Un puntero de NULL indica un error o una condición de fin de archivo.Utilice ferror o feof para determinar qué se ha producido.
Comentarios
La función de gets_s lee una línea de la secuencia de entrada estándar stdin y la almacena en buffer.La línea está compuesto por todos los caracteres hasta e incluir el primer carácter de nueva línea (“\ n ").gets_s a continuación reemplaza el carácter de nueva línea con un carácter null (“\ 0 ") antes de devolver la línea.En cambio, la función de fgets_s conserva el carácter de nueva línea.
Si la lectura del primer carácter es el carácter final de archivo, un carácter null se almacena el principio de buffer y se devuelve NULL.
_getws es una versión con caracteres anchos de gets_s; el argumento y el valor devuelto son cadenas de caracteres.
Si buffer es NULL o sizeInCharacters es menor o igual que cero, o si el búfer es demasiado pequeño para contener la linea de entrada y el terminador nulo, estas funciones se invoca un 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 NULL return y errno determinado a ERANGE.
En C++, mediante estas funciones es simplificado con sobrecargas de plantilla; las sobrecargas pueden deducir la longitud de búfer automáticamente (que elimina la necesidad de especificar un argumento de tamaño) y automáticamente pueden reemplazar anterior, funciones de no Secure con sus más recientes, seguros homólogos.Para obtener más información, vea Sobrecargas de plantilla de seguridad.
Asignaciones de la rutina de Genérico- texto
Rutina de TCHAR.H |
_UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_getts |
gets_s |
gets_s |
_getws |
Requisitos
Rutina |
Encabezado necesario |
---|---|
gets_s |
<stdio.h> |
_getws |
<stdio.h> o <wchar.h> |
La consola no se admite en las aplicaciones de Tienda Windows.Los identificadores estándar de la secuencia asociados a la consola, stdin, stdout, y stderr, deben redirigir antes de que las funciones en tiempo de ejecución de C pueden utilizarlos en las aplicaciones de Tienda Windows.Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.
Ejemplo
// crt_gets_s.c
// This program retrieves a string from the stdin and
// prints the same string to the console.
#include <stdio.h>
int main( void )
{
char line[21]; // room for 20 chars + '\0'
gets_s( line, 20 );
printf( "The line entered was: %s\n", line );
}