gets, _getwsgets, _getws

Obtiene una línea del flujo stdin .Gets a line from the stdin stream. Hay disponibles versiones más seguras de estas funciones; vea gets_s, _getws_s.More secure versions of these functions are available; see gets_s, _getws_s.

Importante

Estas funciones están obsoletas.These functions are obsolete. A partir de Visual Studio 2015, no están disponibles en CRT.Beginning in Visual Studio 2015, they are not available in the CRT. Las versiones seguras de estas funciones, gets_s y _getws_s, siguen estando disponibles.The secure versions of these functions, gets_s and _getws_s, are still available. Para obtener información sobre estas funciones alternativas, vea gets_s, _getws_s.For information on these alternative functions, see gets_s, _getws_s.

Importante

Esta API no se puede usar en aplicaciones que se ejecutan en Windows en tiempo de ejecución.This API cannot be used in applications that execute in the Windows Runtime. Para obtener más información, vea Funciones de CRT no admitidas en aplicaciones de la Plataforma universal de Windows.For more information, see CRT functions not supported in Universal Windows Platform apps.

SintaxisSyntax

char *gets(
   char *buffer
);
wchar_t *_getws(
   wchar_t *buffer
);
template <size_t size>
char *gets(
   char (&buffer)[size]
); // C++ only
template <size_t size>
wchar_t *_getws(
   wchar_t (&buffer)[size]
); // C++ only

ParámetrosParameters

búferbuffer
Ubicación de almacenamiento de la cadena de entrada.Storage location for input string.

Valor devueltoReturn Value

Devuelve su argumento si se realiza correctamente.Returns its argument if successful. Un puntero NULL indica una condición de error o de fin de archivo.A NULL pointer indicates an error or end-of-file condition. Utilice ferror o feof para determinar qué resultado se ha producido.Use ferror or feof to determine which one has occurred. Si buffer es NULL, estas funciones invocan un controlador de parámetros no válido, tal y como se describe en Validación de parámetros.If buffer is NULL, these functions invoke an invalid parameter handler, as described in Parameter Validation. Si se permite que la ejecución continúe, estas funciones devuelven NULL y establecen errno en EINVAL.If execution is allowed to continue, these functions return NULL and set errno to EINVAL.

ObservacionesRemarks

La función gets lee una línea del flujo de entrada estándar stdin y la almacena en buffer.The gets function reads a line from the standard input stream stdin and stores it in buffer. La línea consta de todos los caracteres hasta el primer carácter de línea nueva ('\n'), este último incluido.The line consists of all characters up to and including the first newline character ('\n'). A continuación,gets reemplaza el carácter de línea nueva con un carácter nulo ('\0') antes de devolver la línea.gets then replaces the newline character with a null character ('\0') before returning the line. Por su parte, la función fgets conserva el carácter de línea nueva.In contrast, the fgets function retains the newline character. _getws es una versión con caracteres anchos de gets; el argumento y el valor devuelto son cadenas de caracteres anchos._getws is a wide-character version of gets; its argument and return value are wide-character strings.

Importante

No hay forma de limitar el número de caracteres que gets lee, por lo que una entrada que no sea de confianza puede producir fácilmente saturaciones del búfer.Because there is no way to limit the number of characters read by gets, untrusted input can easily cause buffer overruns. Utilice fgets en su lugar.Use fgets instead.

En C++, estas funciones tienen sobrecargas de plantilla que invocan los homólogos seguros más recientes de estas funciones.In C++, these functions have template overloads that invoke the newer, secure counterparts of these functions. Para obtener más información, vea Sobrecargas de plantilla seguras.For more information, see Secure Template Overloads.

De forma predeterminada, el ámbito de este estado global de esta función es la aplicación.By default, this function's global state is scoped to the application. Para cambiar esto, vea estado global en CRT.To change this, see Global state in the CRT.

Asignaciones de rutina de texto genéricoGeneric-Text Routine Mappings

Rutina TCHAR.HTCHAR.H routine _UNICODE y _MBCS no definidos_UNICODE & _MBCS not defined _MBCS definido_MBCS defined _UNICODE definido_UNICODE defined
_getts gets gets _getws

RequisitosRequirements

RutinaRoutine Encabezado necesarioRequired header
gets <stdio.h>
_getws <stdio.h> o <wchar.h><stdio.h> or <wchar.h>

Para obtener información adicional sobre compatibilidad, consulte Compatibilidad.For additional compatibility information, see Compatibility.

EjemploExample

// crt_gets.c
// compile with: /WX /W3

#include <stdio.h>

int main( void )
{
   char line[21]; // room for 20 chars + '\0'
   gets( line );  // C4996
   // Danger: No way to limit input to 20 chars.
   // Consider using gets_s instead.
   printf( "The line entered was: %s\n", line );
}

Observe que una entrada de más 20 caracteres saturará el búfer de líneas y provocará casi con seguridad que el programa se bloquee.Note that input longer than 20 characters will overrun the line buffer and almost certainly cause the program to crash.


Hello there!The line entered was: Hello there!

Consulta tambiénSee also

E/S de secuenciaStream I/O
fgets, fgetwsfgets, fgetws
fputs, fputwsfputs, fputws
puts, _putwsputs, _putws