Diferența cheie – scanf vs gets
O funcție este un set de instrucțiuni pentru a îndeplini o anumită sarcină. Fără a scrie toate instrucțiunile în același program, acesta poate fi împărțit în mai multe funcții. În programare, utilizatorul își poate defini propriile funcții. Există și funcții oferite de limbajele de programare. Limbajul C oferă o serie de funcții, astfel încât programatorul le poate folosi direct fără a le implementa de la început. Două astfel de funcții furnizate de limbajul C sunt scanf și gets. Acest articol discută diferența dintre aceste două funcții. Diferența cheie dintre scanf și gets este că scanf se termină să primească intrare când întâlnește un spațiu alb, o nouă linie sau un End Of File (EOF), în timp ce gets consideră un spațiu alb ca parte a șirului de intrare și se termină intrarea la întâlnirea cu noua linie sau EOF.
Ce este scanf?
Funcția scanf poate citi intrările de la tastatură și le stochează conform specificatorului de format dat. Citește intrarea până când întâlnește un spațiu alb, linie nouă sau EOF. Sintaxa este următoarea.
scanf(„șir de format”, lista adreselor variabilelor);
Consultați exemplul de mai jos pentru a înțelege scanf.
Figura 01: scanf cu o singură intrare
Conform programului de mai sus, intrarea primită de la tastatură este un număr întreg, deci specificatorul de format este %d. Dacă primește o valoare de caracter, specificatorul de format este %c. Dacă obțineți o valoare în virgulă mobilă, specificatorul de format este %f. Valoarea de intrare primită ar trebui să fie stocată în variabila număr. Prin urmare, adresa numărului variabil este transmisă în funcția scanf. Acum variabila număr conține valoarea dată de utilizator de la tastatură. În cele din urmă, putem tipări variabila număr pentru a verifica valoarea.
Este, de asemenea, posibil să primiți mai mult de o valoare la un moment dat.
Figura 02: scanf cu intrări multiple
Intrarile primite sunt stocate in variabile number1 si number2. Valorile pot fi verificate utilizând printf.
Ce este obține?
Funcția gets este utilizată pentru a primi intrare de la tastatură până când întâlnești o linie nouă sau EOF. Spațiile albe sunt considerate ca parte a intrării. Sintaxa pentru funcția gets este următoarea.
gets(„unde să stochezi șirul”);
Dacă apare o eroare la primirea șirului, funcția gets va returna o valoare nulă.
Consultați exemplul de mai jos,
Figura 03: primește
Intrarea este primită de funcția gets și stocată în cuvântul variabil 1. Dacă programatorul a folosit scanf în loc să obțină și să introducă un șir de caractere precum „hello world”, scanf va citi șirul ca două șiruri din cauza spațiului alb. Dar gets îl va citi ca un șir „bună lume”.
Care sunt asemănările dintre scanf și gets?
- Ambele sunt funcții furnizate de limbajul de programare C.
- Ambele ar trebui să includă fișierul antet stdio.h pentru a utiliza aceste funcții.
- Ambele pot fi folosite pentru a obține informații de la intrarea standard.
Care este diferența dintre scanf și obține?
scanf vs gets |
|
scanf este o funcție C pentru a citi intrarea de la intrarea standard până când întâlnești un spațiu alb, o linie nouă sau EOF. | gets este o funcție C pentru a citi intrarea de la intrarea standard până când întâlniți o nouă linie sau EOF. Consideră spațiul alb ca parte a intrării. |
Sintaxă | |
Funcția scanf preia șirul de format și lista de adrese ale variabilelor. de exemplu. scanf(„%d”, &number); | Funcția gets preia numele variabilei pentru a stoca valoarea primită. De exemplu. primește(nume); |
Flexibilitate | |
scanf poate citi mai multe valori de diferite tipuri de date. | gets() va primi numai date șirurile de caractere. |
Rezumat – scanf vs gets
scanf și gets sunt funcții furnizate de limbajul de programare C. Utilizatorul nu trebuie să implementeze aceste funcții de la început. Le pot folosi direct în programele lor. Diferența dintre scanf și gets este că, scanf se termină să primească intrare la întâlnirea unui spațiu alb, a unei linii noi sau a unui Sfârșit de fișier (EOF) și gets consideră un spațiu alb ca parte a șirului de intrare și termină intrarea la întâlnirea cu noua linie sau EOF. Utilizarea scanf sau gets depinde de modul de a primi intrarea utilizatorului de la intrarea standard, care este de cele mai multe ori tastatura. scanf este mai flexibil decât devine.
Descărcați versiunea PDF a scanf vs gets
Puteți descărca versiunea PDF a acestui articol și o puteți utiliza în scopuri offline, conform nota de citare. Vă rugăm să descărcați versiunea PDF aici Diferența dintre scanf și obține