Разлика между scanf и gets

Съдържание:

Разлика между scanf и gets
Разлика между scanf и gets

Видео: Разлика между scanf и gets

Видео: Разлика между scanf и gets
Видео: Функция getchar в языке Си (полное объяснение) 2024, Ноември
Anonim

Ключова разлика – scanf срещу gets

Функцията е набор от оператори за изпълнение на конкретна задача. Без да пишете всички изрази в една и съща програма, тя може да бъде разделена на множество функции. При програмирането потребителят може да дефинира свои собствени функции. Има и функции, предоставени от езици за програмиране. Езикът C предоставя редица функции, така че програмистът може да ги използва директно, без да ги прилага от самото начало. Две такива функции, предоставени от езика C, са scanf и gets. Тази статия обсъжда разликата между тези две функции. Ключовата разлика между scanf и gets е, че scanf приключва с въвеждането при срещане на празно пространство, нов ред или край на файл (EOF), докато gets разглежда празното пространство като част от входния низ и завършва въвеждането при срещане на нов ред или EOF.

Какво е scanf?

Функцията scanf може да чете въведени данни от клавиатурата и да ги съхранява според дадения спецификатор на формат. Той чете входа, докато не срещне интервал, нов ред или EOF. Синтаксисът е както следва.

scanf(“форматиран низ”, списък с адреси на променливи);

Вижте примера по-долу, за да разберете scanf.

Разлика между scanf и gets
Разлика между scanf и gets
Разлика между scanf и gets
Разлика между scanf и gets

Фигура 01: scanf с един вход

Съгласно горната програма, въвеждането от клавиатурата е цяло число, така че спецификаторът на формата е %d. Ако получава символна стойност, спецификаторът на формата е %c. Ако се получи стойност с плаваща запетая, спецификаторът на формата е %f. Получената входна стойност трябва да се съхранява в числовата променлива. Следователно адресът на променлива номер се предава на функцията scanf. Сега числовата променлива съдържа стойността, дадена от потребителя от клавиатурата. Накрая можем да отпечатаме числовата променлива, за да проверим стойността.

Възможно е също да получите повече от една стойност наведнъж.

Разлика между scanf и gets_Фигура 02
Разлика между scanf и gets_Фигура 02
Разлика между scanf и gets_Фигура 02
Разлика между scanf и gets_Фигура 02

Фигура 02: scanf с множество входове

Получените входове се съхраняват в променливи номер1 и номер2. Стойностите могат да се проверят с помощта на printf.

Какво се получава?

Функцията gets се използва за получаване на въвеждане от клавиатурата, докато се срещне нов ред или EOF. Белият интервал се счита за част от входа. Синтаксисът за функцията gets е както следва.

gets(„къде да съхраня низа“);

Ако има грешка при получаване на низа, функцията gets ще върне нулева стойност.

Вижте примера по-долу,

Ключова разлика между scanf и gets
Ключова разлика между scanf и gets
Ключова разлика между scanf и gets
Ключова разлика между scanf и gets

Фигура 03: получава

Входът се получава от функцията gets и се съхранява в променлива word1. Ако програмистът е използвал scanf вместо gets и въвеждане на низ като „hello world“, scanf ще прочете низа като два низа поради интервала. Но gets ще го прочете като един низ „здравей свят“.

Какви са приликите между scanf и gets?

  • И двете са функции, предоставени от езика за програмиране C.
  • И двете трябва да включват заглавен файл stdio.h, за да използват тези функции.
  • И двете могат да се използват за получаване на вход от стандартния вход.

Каква е разликата между scanf и gets?

scanf vs gets

scanf е функция на C за четене на вход от стандартния вход, докато не срещнете интервал, нов ред или EOF. gets е C функция за четене на вход от стандартен вход, докато не срещнете нов ред или EOF. Той счита интервала за част от входа.
Синтаксис
Функцията scanf взема форматиращия низ и списъка с адреси на променливи. напр. scanf(“%d”, &номер); Функцията gets взема името на променливата, за да съхрани получената стойност. напр. получава (име);
Гъвкавост
scanf може да чете множество стойности от различни типове данни. gets() ще получи само данни за символен низ.

Резюме – scanf срещу gets

scanf и gets са функции, предоставени от езика за програмиране C. Потребителят не трябва да прилага тези функции от самото начало. Те могат директно да ги използват в своите програми. Разликата между scanf и gets е, че scanf приключва с въвеждането при срещане на празен интервал, нов ред или край на файл (EOF) и gets разглежда празното пространство като част от входния низ и прекратява въвеждането при срещане на нов ред или EOF. Използването на scanf или gets зависи от начина за получаване на потребителски вход от стандартния вход, който е клавиатурата през повечето време. scanf е по-гъвкав от gets.

Изтеглете PDF версията на scanf vs gets

Можете да изтеглите PDF версия на тази статия и да я използвате за офлайн цели според бележката за цитиране. Моля, изтеглете PDF версия тук Разлика между scanf и gets

Препоръчано: