Функция gets (S) обеспечивает ввод строки символов S до нажатия клавиши Enter, т.е. позволяет ввести строку, содержащую пробелы.
Для форматированного ввода информации любого вида предназначена функция
scanf(управляющая строка, список адресов объектов ввода);
в управляющей строке которой указываются только спецификации преобразований, а в списке объектов ввода – адреса вводимых скалярных переменных, для чего перед ID переменной указывается операция &, обозначающая «взять адрес». Для ввода значений строковых (составных) переменных символ & не указывается. При использовании формата %s строка вводится до первого пробела.
Пример ввода данных int а, double b, и char str[20]:
scanf ( "%d %lf %s", &a, &b, str);
Вводить данные можно как в одной строке через пробел, так и в разных строках.