function
<cstdio>

gets

char * gets ( char * str );
Get string from stdin
[NOTE: This function is no longer available in C or C++ (as of C11 & C++14)]

Reads characters from the standard input (stdin) and stores them as a C string into str until a newline character or the end-of-file is reached.

The newline character, if found, is not copied into str.

A terminating null character is automatically appended after the characters copied to str.

Notice that gets is quite different from fgets: not only gets uses stdin as source, but it does not include the ending newline character in the resulting string and does not allow to specify a maximum size for str (which can lead to buffer overflows).

Parameters

str
Pointer to a block of memory (array of char) where the string read is copied as a C string.

Return Value

On success, the function returns str.
If the end-of-file is encountered while attempting to read a character, the eof indicator is set (feof). If this happens before any characters could be read, the pointer returned is a null pointer (and the contents of str remain unchanged).
If a read error occurs, the error indicator (ferror) is set and a null pointer is also returned (but the contents pointed by str may have changed).

Compatibility

The C standard definitively removed this function in 2011 from its specification.
The function is deprecated in C++ (as of the 2014 standard).

Example

1
2
3
4
5
6
7
8
9
10
11
/* gets example */
#include <stdio.h>

int main()
{
  char string [256];
  printf ("Insert your full address: ");
  gets (string);     // warning: unsafe (see fgets instead)
  printf ("Your address is: %s\n",string);
  return 0;
}

See also