Ключевая разница – scanf vs gets
Функция - это набор операторов для выполнения определенной задачи. Не записывая все операторы в одной программе, ее можно разделить на несколько функций. В программировании пользователь может определять свои собственные функции. Есть также функции, предоставляемые языками программирования. Язык C предоставляет ряд функций, поэтому программист может использовать их напрямую, не реализуя их с самого начала. Две такие функции, предоставляемые языком C, - это scanf и gets. В этой статье обсуждается разница между этими двумя функциями. Ключевое различие между scanf и gets заключается в том, что scanf заканчивает ввод при обнаружении пробела, новой строки или конца файла (EOF), тогда как gets рассматривает пробел как часть входной строки и завершает ввод при обнаружении новой строки или EOF.
Что такое scanf?
Функция scanf может считывать ввод с клавиатуры и сохранять его в соответствии с заданным спецификатором формата. Он считывает ввод до тех пор, пока не встретит пробел, новую строку или конец строки. Синтаксис следующий.
scanf(“строка формата”, список адресов переменных);
Обратитесь к приведенному ниже примеру, чтобы понять scanf.
Рисунок 01: scanf с одним вводом
Согласно приведенной выше программе ввод с клавиатуры представляет собой целое число, поэтому спецификатор формата - %d. Если он получает символьное значение, спецификатор формата - %c. При получении значения с плавающей запятой используется спецификатор формата %f. Полученное входное значение должно быть сохранено в переменной number. Поэтому адрес переменной number передается в функцию scanf. Теперь числовая переменная содержит значение, введенное пользователем с клавиатуры. Наконец, мы можем напечатать числовую переменную, чтобы проверить значение.
Также возможно получить более одного значения за раз.
Рисунок 02: scanf с несколькими входами
Полученные входные данные сохраняются в переменных number1 и number2. Значения можно проверить с помощью printf.
Что получает?
Функция gets используется для получения ввода с клавиатуры до появления новой строки или конца строки. Пробел считается частью ввода. Синтаксис функции gets следующий.
gets(“где хранить строку”);
Если при получении строки произошла ошибка, функция gets вернет нулевое значение.
См. приведенный ниже пример,
Рисунок 03: получает
Ввод принимается функцией gets и сохраняется в переменной word1. Если программист использовал scanf вместо gets и ввел такую строку, как «hello world», то scanf прочитает эту строку как две строки из-за пробелов. Но gets прочитает это как одну строку «hello world».
В чем сходство между scanf и gets?
- Обе функции предоставляются языком программирования C.
- Оба должны включать заголовочный файл stdio.h для использования этих функций.
- Оба варианта могут использоваться для получения ввода из стандартного ввода.
В чем разница между scanf и gets?
scanf vs gets |
|
scanf - это функция C для чтения ввода из стандартного ввода до тех пор, пока не встретится пробел, новая строка или конец строки. | gets - это функция C для чтения ввода из стандартного ввода до тех пор, пока не встретится новая строка или конец строки. Он считает пробелы частью ввода. |
Синтаксис | |
Функция scanf принимает строку формата и список адресов переменных. например scanf("%d", &число); | Функция gets принимает имя переменной для хранения полученного значения. Например. получает(имя); |
Гибкость | |
scanf может считывать несколько значений разных типов данных. | gets() будет получать только данные строки символов. |
Резюме – scanf vs gets
scanf и gets - это функции, предоставляемые языком программирования C. Пользователю не нужно реализовывать эти функции с самого начала. Они могут напрямую использовать их в своих программах. Разница между scanf и gets заключается в том, что scanf заканчивает ввод при обнаружении пробела, новой строки или конца файла (EOF), а get рассматривает пробел как часть входной строки и завершает ввод при обнаружении новой строки или EOF. Использование scanf или gets зависит от способа получения пользовательского ввода со стандартного ввода, которым в большинстве случаев является клавиатура. scanf более гибок, чем gets.
Загрузить PDF-версию scanf vs gets
Вы можете загрузить PDF-версию этой статьи и использовать ее в автономном режиме в соответствии с примечанием к цитированию. Пожалуйста, загрузите PDF-версию здесь. Разница между scanf и gets