Razlika med scanf in gets

Kazalo:

Razlika med scanf in gets
Razlika med scanf in gets

Video: Razlika med scanf in gets

Video: Razlika med scanf in gets
Video: Difference between scanf( ) and gets( ) function to read string in c programming language 2024, Julij
Anonim

Ključna razlika – scanf proti gets

Funkcija je niz stavkov za izvedbo določene naloge. Brez pisanja vseh stavkov v istem programu ga je mogoče razdeliti na več funkcij. Pri programiranju lahko uporabnik sam definira svoje funkcije. Obstajajo tudi funkcije, ki jih ponujajo programski jeziki. Jezik C ponuja številne funkcije, tako da jih lahko programer uporablja neposredno, ne da bi jih implementiral od začetka. Dve taki funkciji, ki ju ponuja jezik C, sta scanf in gets. Ta članek obravnava razliko med tema dvema funkcijama. Ključna razlika med scanf in gets je v tem, da scanf konča vnos, ko naleti na presledek, novo vrstico ali konec datoteke (EOF), medtem ko gets presledek obravnava kot del vnosnega niza in konča vnos, ko naleti na novo vrstico ali EOF.

Kaj je scanf?

Funkcija scanf lahko bere vnose s tipkovnice in jih shrani glede na podani specifikator formata. Bere vnos, dokler ne naleti na presledek, novo vrstico ali EOF. Sintaksa je naslednja.

scanf(“format string”, seznam naslovov spremenljivk);

Glejte spodnji primer, da razumete scanf.

Razlika med scanf in gets
Razlika med scanf in gets
Razlika med scanf in gets
Razlika med scanf in gets

Slika 01: scanf z enim vnosom

Glede na zgornji program je vnos s tipkovnice celo število, zato je specifikator formata %d. Če dobiva vrednost znaka, je specifikator formata %c. Če dobimo vrednost s plavajočo vejico, je specifikator formata %f. Prejeto vhodno vrednost je treba shraniti v spremenljivko števila. Zato se naslov spremenljivke number posreduje funkciji scanf. Sedaj spremenljivka števila vsebuje vrednost, ki jo poda uporabnik s tipkovnice. Končno lahko natisnemo spremenljivko števila, da preverimo vrednost.

Možno je tudi prejeti več kot eno vrednost hkrati.

Razlika med scanf in gets_Slika 02
Razlika med scanf in gets_Slika 02
Razlika med scanf in gets_Slika 02
Razlika med scanf in gets_Slika 02

Slika 02: scanf z več vhodi

Prejeti vnosi so shranjeni v spremenljivki številka1 in številka2. Vrednosti lahko preverite z uporabo printf.

Kaj se dobi?

Funkcija gets se uporablja za sprejemanje vnosa s tipkovnice, dokler ne naleti na novo vrstico ali EOF. Presledek se šteje kot del vnosa. Sintaksa za funkcijo gets je naslednja.

gets(»kam shraniti niz«);

Če pride do napake pri prejemu niza, bo funkcija gets vrnila ničelno vrednost.

Glejte spodnji primer,

Ključna razlika med scanf in gets
Ključna razlika med scanf in gets
Ključna razlika med scanf in gets
Ključna razlika med scanf in gets

Slika 03: dobi

Vnos prejme funkcija gets in shrani v spremenljivko word1. Če je programer uporabil scanf namesto gets in vnesel niz, kot je »hello world«, bo scanf zaradi presledka prebral niz kot dva niza. Toda gets ga bo prebral kot en niz »zdravo, svet«.

Kakšne so podobnosti med scanf in gets?

  • Obe funkciji omogoča programski jezik C.
  • Obe morata vključevati datoteko glave stdio.h za uporabo teh funkcij.
  • Oboje lahko uporabite za pridobivanje vnosa iz standardnega vnosa.

Kakšna je razlika med scanf in gets?

scanf vs gets

scanf je funkcija C za branje vnosa iz standardnega vnosa, dokler ne naletite na presledek, novo vrstico ali EOF. gets je funkcija C za branje vnosa s standardnega vnosa, dokler ne naletite na novo vrstico ali EOF. Presledek obravnava kot del vnosa.
Sintaksa
Funkcija scanf prevzame formatni niz in seznam naslovov spremenljivk. npr. scanf(“%d”, &število); Funkcija gets vzame ime spremenljivke za shranjevanje prejete vrednosti. Npr. gets(name);
Fleksibilnost
scanf lahko bere več vrednosti različnih vrst podatkov. gets() bo dobil samo podatke o nizu znakov.

Povzetek – scanf vs gets

scanf in gets sta funkciji, ki ju ponuja programski jezik C. Uporabniku teh funkcij ni treba implementirati od začetka. Lahko jih neposredno uporabijo v svojih programih. Razlika med scanf in gets je v tem, da scanf konča vnos, ko naleti na presledek, novo vrstico ali konec datoteke (EOF) in gets presledek obravnava kot del vnosnega niza in konča vnos, ko naleti na novo vrstico ali EOF. Uporaba scanf ali gets je odvisna od načina prejemanja uporabniškega vnosa iz standardnega vnosa, ki je večino časa tipkovnica. scanf je bolj prilagodljiv kot gets.

Prenesite PDF različico scanf vs gets

Lahko prenesete PDF različico tega članka in jo uporabite za namene brez povezave v skladu z opombo o citiranju. Prenesite PDF različico tukaj Razlika med scanf in gets

Priporočena: