Функция gets() — стандартная функция языка Си для ввода строки.
Объявление прототипа функции gets():
char *gets(char *s)
Функция puts() — стандартная функция языка Си для вывода строки.
Объявление прототипа функции puts():
int puts(const char *s)
Эти объявления находятся в файле заголовков stdio.h, поэтому программы, использующие эти функции, должны включать следующую директиву препроцессора:
#include <stdio.h>
Функция gets() вводит входную строку из потока stdin. При этом символ новой строки отбрасывается, а введенные символы дополняются в конце нулевым символом (символом '\0'). Необходимо позаботиться, чтобы принимающий массив символов был достаточно большим для размещения наибольшей возможной строки. Функция возвращает NULL по концу файла, если символов для чтения нет.
В отличии от функции scanf(), использующей спецификатор %s, функция gets() читает полную строку, включая символы пробела и табуляцию.
Функция puts()выводит заканчивающуюся нулевым символом строку символов в поток stdout. При этом вместо нулевого символа выводится символ новой строки.
Функции fgets()и fputs()подобны функциям gets() и puts()(Функции чтения-записи).
Пример 1
#include <stdio.h>
#define LINELEN 256
int main()
  {
  char name[LINELEN+1];
  printf("Введите полное имя:");
  if (gets(name) == NULL)
    printf("Ошибка\n");
  else
    puts(name);
}
Вывод программы:
Введите полное имя:Иванов Петр Васильевич
Иванов Петр Васильевич