Справочник по C/C++
gets()

#include <stdio.h>
char *gets(char *str);

Описание

Читает символы из стандартного потока stdin и помещает их в символьный массив

Функция gets() читает символы из стандартного потока stdin и помещает их в символьный массив, адресуемый указателем str. Символы читаются до тех пор, пока не встретится символ новой строки или значение EOF. Символ новой строки не является частью строки, поэтому он преобразуется в нулевой символ, завершающий строку.

При успешном выполнении функция gets() возвращает указатель str; а при сбое возвращается нулевой указатель. Если произошла ошибка, содержимое массива, адресуемого параметром str, не определено. Поскольку функция gets() возвращает нулевой указатель и при возникновении ошибки, и при достижении конца файла, то для выяснения, что же произошло на самом деле, необходимо использовать функцию feof() или ferror().

Не существует способа ограничить число символов, которое прочитает функция gets(), а это значит, что массив, адресуемый указателем str, может переполниться. Следовательно, данная функция опасна по своей природе. Ее следует использовать только в пробных программах или утилитах "внутреннего" назначения, т.е. для себя. Ее не рекомендуется использовать в коммерческих программах.