Ključna razlika – scanf vs gets
Funkcija je skup iskaza za izvođenje određenog zadatka. Bez pisanja svih naredbi u isti program, može se podijeliti na više funkcija. U programiranju, korisnik može definirati vlastite funkcije. Tu su i funkcije koje pružaju programski jezici. C jezik pruža brojne funkcije, tako da ih programer može koristiti direktno bez da ih implementira od početka. Dvije takve funkcije koje pruža jezik C su scanf i gets. Ovaj članak govori o razlici između ove dvije funkcije. Ključna razlika između scanf-a i gets-a je u tome što scanf završava unosom kada naiđe na razmak, novi red ili kraj datoteke (EOF), dok gets razmatra razmak kao dio ulaznog niza i završava unos kada naiđe na novi red ili EOF.
Šta je scanf?
Funkcija scanf može čitati unos sa tastature i pohranjuje ih u skladu sa datim specifikacijom formata. Čita unos dok ne naiđe na razmak, novi red ili EOF. Sintaksa je sljedeća.
scanf(“string formata”, lista adresa varijabli);
Pogledajte primjer dat ispod da biste razumjeli scanf.
Slika 01: skeniranje sa jednim ulazom
Prema gore navedenom programu, unos koji se dobija sa tastature je ceo broj, tako da je specifikacija formata %d. Ako dobija vrijednost znakova, specificator formata je %c. Ako dobijete vrijednost s pomičnim zarezom, specificator formata je %f. Primljena ulazna vrijednost treba biti pohranjena u brojčanoj varijabli. Stoga se adresa varijable broj prenosi u funkciju scanf. Sada brojčana varijabla sadrži vrijednost koju je korisnik dao sa tastature. Konačno, možemo ispisati varijablu broja da provjerimo vrijednost.
Takođe je moguće primiti više od jedne vrijednosti u isto vrijeme.
Slika 02: skeniranje sa višestrukim ulazima
Primljeni ulazi se pohranjuju u varijabli broj1 i broj2. Vrijednosti se mogu provjeriti korištenjem printf.
Šta dobija?
gets funkcija koristi za primanje unosa sa tastature sve dok ne naiđe na novi red ili EOF. Razmak se smatra dijelom unosa. Sintaksa za gets funkciju je sljedeća.
gets(“gdje pohraniti niz”);
Ako dođe do greške prilikom primanja stringa, funkcija gets će vratiti nultu vrijednost.
Pogledajte donji primjer,
Slika 03: dobiva
Ulaz prima funkcija gets i pohranjuje ga u promjenljivu riječ1. Ako je programer koristio scanf umjesto gets i input stringa kao što je "hello world", scanf će pročitati string kao dva niza zbog razmaka. Ali gets će to pročitati kao jedan niz "zdravo svijete".
Koje su sličnosti između scanf-a i gets?
- Obe su funkcije koje obezbeđuje programski jezik C.
- Oba bi trebala uključiti datoteku zaglavlja stdio.h za korištenje ovih funkcija.
- Oba se mogu koristiti za dobijanje unosa sa standardnog ulaza.
Koja je razlika između scanf-a i geta?
scanf vs gets |
|
scanf je C funkcija za čitanje unosa sa standardnog ulaza dok ne naiđe na razmak, novi red ili EOF. | gets je C funkcija za čitanje unosa sa standardnog ulaza dok ne naiđe na novi red ili EOF. Smatra razmak kao dio unosa. |
Sintaksa | |
scanf funkcija uzima niz formata i listu adresa varijabli. npr. scanf(“%d”, &number); | gets funkcija uzima ime varijable za pohranjivanje primljene vrijednosti. Npr. gets(name); |
Fleksibilnost | |
scanf može čitati više vrijednosti različitih tipova podataka. | gets() će dobiti samo podatke niza znakova. |
Sažetak – scanf vs gets
scanf i gets su funkcije koje pruža programski jezik C. Korisnik ne mora implementirati ove funkcije od početka. Mogu ih direktno koristiti u svojim programima. Razlika između scanf-a i get-a je u tome što scanf završava unosom kada naiđe na razmak, novi red ili kraj datoteke (EOF) i get razmatra razmak kao dio ulaznog niza i završava unos kada naiđe na novi red ili EOF. Korištenje scanf ili gets ovisi o načinu primanja korisničkog unosa sa standardnog ulaza koji je većinu vremena tastatura. scanf je fleksibilniji nego gets.
Preuzmite PDF verziju scanf vs gets
Možete preuzeti PDF verziju ovog članka i koristiti ga za vanmrežne svrhe prema napomeni o citatu. Molimo preuzmite PDF verziju ovdje Razlika između scanf-a i gets