Nøkkelforskjell – scanf vs gets
En funksjon er et sett med setninger for å utføre en spesifikk oppgave. Uten å skrive alle utsagn i samme program, kan det deles inn i flere funksjoner. Ved programmering kan brukeren definere sine egne funksjoner. Det er også funksjoner som tilbys av programmeringsspråk. C-språket gir en rekke funksjoner, slik at programmereren kan bruke dem direkte uten å implementere dem fra begynnelsen. To slike funksjoner levert av C-språket er scanf og gets. Denne artikkelen diskuterer forskjellen mellom disse to funksjonene. Den viktigste forskjellen mellom scanf og gets er at scanf slutter å ta innspill når han møter et mellomrom, nylinje eller End Of File (EOF), mens get betrakter et mellomrom som en del av inndatastrengen og avslutter inngangen når han møter ny linje eller EOF.
Hva er scanf?
Scanf-funksjonen kan lese inndata fra tastaturet og lagre dem i henhold til den gitte formatspesifikasjonen. Den leser inndataene til den møter et mellomrom, ny linje eller EOF. Syntaksen er som følger.
scanf(“formatstreng”, liste over adresser med variabler);
Se eksemplet nedenfor for å forstå scanf.
Figur 01: skanning med én inngang
I følge programmet ovenfor er inndataene fra tastaturet et heltall, så formatspesifikasjonen er %d. Hvis den får en tegnverdi, er formatspesifikasjonen %c. Hvis du får en flyttallsverdi, er formatspesifikasjonen %f. Den mottatte inngangsverdien skal lagres i tallvariabelen. Derfor sendes adressen til variabelnummeret inn i scanf-funksjonen. Nå inneholder tallvariabelen verdien gitt av brukeren fra tastaturet. Til slutt kan vi skrive ut tallvariabelen for å sjekke verdien.
Det er også mulig å motta mer enn én verdi om gangen.
Figur 02: skanning med flere innganger
De mottatte inngangene lagres i variabel nummer1 og nummer2. Verdier kan kontrolleres ved å bruke printf.
What is gets?
gets-funksjonen brukes til å motta input fra tastaturet til du møter en ny linje eller EOF. Mellomrommet betraktes som en del av inngangen. Syntaksen for gets-funksjonen er som følger.
gets(“hvor skal du lagre strengen”);
Hvis det er en feil ved mottak av strengen, vil gets-funksjonen returnere en nullverdi.
Se eksemplet nedenfor,
Figur 03: blir
Inputen mottas av gets-funksjonen og lagres i variabel word1. Hvis programmereren brukte scanf i stedet for å hente og legge inn en streng som "hello world", vil scanf lese strengen som to strenger på grunn av mellomrommet. Men gets vil lese den som én streng «hello world».
Hva er likhetene mellom scanf og gets?
- Begge er funksjoner levert av programmeringsspråket C.
- Begge bør inkludere overskriftsfil stdio.h for å bruke disse funksjonene.
- Begge kan brukes til å få inndata fra standardinndata.
Hva er forskjellen mellom scanf og gets?
scanf vs gets |
|
scanf er en C-funksjon for å lese inndata fra standardinndata til du møter et mellomrom, ny linje eller EOF. | gets er en C-funksjon for å lese inndata fra standardinndata til du møter en ny linje eller EOF. Den betrakter mellomrom som en del av inndata. |
Syntaks | |
scanf-funksjonen tar formatstrengen og listen over adresser til variabler. f.eks. scanf(“%d”, &number); | gets-funksjonen tar navnet på variabelen for å lagre den mottatte verdien. f.eks. får(navn); |
Fleksibilitet | |
scanf kan lese flere verdier av forskjellige datatyper. | gets() vil bare få tegnstrengdata. |
Sammendrag – scanf vs gets
scanf og gets er funksjoner levert av programmeringsspråket C. Brukeren trenger ikke å implementere disse funksjonene fra begynnelsen. De kan bruke dem direkte i programmene sine. Forskjellen mellom scanf og gets er at scanf slutter med å ta innspill ved å støte på et mellomrom, nylinje eller End Of File (EOF) og betrakter et mellomrom som en del av inndatastrengen og avslutter inndata ved å møte nylinje eller EOF. Bruk av scanf eller gets avhenger av måten å motta brukerinndata på fra standardinngangen som er tastaturet mesteparten av tiden. scanf er mer fleksibelt enn det blir.
Last ned PDF-versjonen av scanf vs gets
Du kan laste ned PDF-versjonen av denne artikkelen og bruke den til offline-formål i henhold til sitat. Last ned PDF-versjon her Forskjellen mellom scanf og gets