Nøgleforskel – scanf vs gets
En funktion er et sæt sætninger til at udføre en specifik opgave. Uden at skrive alle udsagn i det samme program, kan det opdeles i flere funktioner. Ved programmering kan brugeren definere sine egne funktioner. Der er også funktioner leveret af programmeringssprog. C-sproget giver en række funktioner, så programmøren kan bruge dem direkte uden at implementere dem fra begyndelsen. To sådanne funktioner leveret af C-sprog er scanf og gets. Denne artikel diskuterer forskellen mellem disse to funktioner. Den vigtigste forskel mellem scanf og gets er, at scanf slutter med at tage input, når han støder på et hvidt mellemrum, en ny linje eller End Of File (EOF), mens get betragter et mellemrum som en del af inputstrengen og afslutter inputtet, når han støder på en ny linje eller EOF.
Hvad er scanf?
Scanf-funktionen kan læse input fra tastaturet og gemmer dem i henhold til den givne formatspecifikation. Den læser input, indtil den støder på et mellemrum, ny linje eller EOF. Syntaksen er som følger.
scanf(“formatstreng”, liste over adresser med variabler);
Se eksemplet nedenfor for at forstå scanf.
Figur 01: scanf med ét input
I henhold til ovenstående program er input fra tastaturet et heltal, så formatspecifikationen er %d. Hvis den får en tegnværdi, er formatspecifikationen %c. Hvis du får en flydende kommaværdi, er formatspecifikationen %f. Den modtagne inputværdi skal gemmes i talvariablen. Derfor sendes adressen på variabelnummeret ind i scanf-funktionen. Nu indeholder talvariablen værdien givet af brugeren fra tastaturet. Endelig kan vi udskrive talvariablen for at kontrollere værdien.
Det er også muligt at modtage mere end én værdi ad gangen.
Figur 02: scanf med flere input
De modtagne input gemmes i variabel nummer1 og nummer2. Værdier kan kontrolleres ved at bruge printf.
What is gets?
gets-funktionen bruges til at modtage input fra tastaturet, indtil du støder på en ny linje eller EOF. Mellemrummet betragtes som en del af inputtet. Syntaksen for gets-funktionen er som følger.
gets(“hvor skal strengen opbevares”);
Hvis der er en fejl ved modtagelse af strengen, vil gets-funktionen returnere en nulværdi.
Se nedenstående eksempel,
Figur 03: bliver
Input modtages af gets-funktionen og lagres i variabel word1. Hvis programmøren brugte scanf i stedet for at hente og indtaste en streng såsom "hello world", vil scanf læse strengen som to strenge på grund af mellemrummet. Men gets vil læse det som én streng "hello world".
Hvad er lighederne mellem scanf og gets?
- Begge er funktioner leveret af programmeringssproget C.
- Begge skal inkludere overskriftsfil stdio.h for at bruge disse funktioner.
- Begge kan bruges til at få input fra standardinputtet.
Hvad er forskellen mellem scanf og gets?
scanf vs gets |
|
scanf er en C-funktion til at læse input fra standardinput, indtil der stødes på et mellemrum, ny linje eller EOF. | gets er en C-funktion til at læse input fra standardinput, indtil du støder på en ny linje eller EOF. Den betragter mellemrum som en del af inputtet. |
Syntaks | |
scanf-funktionen tager formatstrengen og listen over adresser på variabler. for eksempel. scanf(“%d”, &number); | gets-funktionen tager navnet på variablen for at gemme den modtagne værdi. For eksempel. får(navn); |
Fleksibilitet | |
scanf kan læse flere værdier af forskellige datatyper. | gets() vil kun få tegnstrengdata. |
Oversigt – scanf vs gets
scanf og gets er funktioner leveret af programmeringssproget C. Brugeren behøver ikke at implementere disse funktioner fra begyndelsen. De kan bruge dem direkte i deres programmer. Forskellen mellem scanf og gets er, at scanf slutter med at tage input ved at støde på et mellemrum, en ny linje eller End Of File (EOF) og betragter et mellemrum som en del af inputstrengen og afslutter inputtet ved at støde på en ny linje eller EOF. Brug af scanf eller gets afhænger af måden at modtage brugerinput fra standardinput, som er tastaturet det meste af tiden. scanf er mere fleksibelt end det bliver.
Download PDF-versionen af scanf vs gets
Du kan downloade PDF-versionen af denne artikel og bruge den til offline-formål i henhold til citatnotat. Download venligst PDF-version her Forskel mellem scanf og gets