nyckelskillnad – scanf vs gets
En funktion är en uppsättning satser för att utföra en specifik uppgift. Utan att skriva alla påståenden i samma program kan det delas upp i flera funktioner. Vid programmering kan användaren definiera sina egna funktioner. Det finns också funktioner som tillhandahålls av programmeringsspråk. C-språket tillhandahåller ett antal funktioner, så att programmeraren kan använda dem direkt utan att implementera dem från början. Två sådana funktioner som tillhandahålls av C-språket är scanf och gets. Den här artikeln diskuterar skillnaden mellan dessa två funktioner. Den viktigaste skillnaden mellan scanf och gets är att scanf slutar ta indata när han stöter på ett blanksteg, nyrad eller End Of File (EOF) medan get betraktar ett blanksteg som en del av inmatningssträngen och avslutar inmatningen när han stöter på nylinje eller EOF.
Vad är scanf?
Scanf-funktionen kan läsa indata från tangentbordet och lagrar dem enligt den givna formatspecifikationen. Den läser indata tills den stöter på ett blanksteg, nyrad eller EOF. Syntaxen är som följer.
scanf(“formatsträng”, lista över adresser med variabler);
Se exemplet nedan för att förstå scanf.
Figur 01: scanf med en ingång
Enligt programmet ovan är inmatningen från tangentbordet ett heltal, så formatspecifikationen är %d. Om den får ett teckenvärde är formatspecifikationen %c. Om du får ett flyttalsvärde är formatspecifikationen %f. Det mottagna ingångsvärdet ska lagras i talvariabeln. Därför skickas adressen till variabelnummer till scanf-funktionen. Nu innehåller talvariabeln det värde som användaren anger från tangentbordet. Slutligen kan vi skriva ut talvariabeln för att kontrollera värdet.
Det är också möjligt att ta emot mer än ett värde åt gången.
Figur 02: scanf med flera ingångar
De mottagna ingångarna lagras i variabel nummer1 och nummer2. Värden kan kontrolleras genom att använda printf.
What is gets?
gets-funktionen används för att ta emot input från tangentbordet tills den stöter på en ny rad eller EOF. Vitrymden betraktas som en del av inmatningen. Syntaxen för gets-funktionen är som följer.
gets(“var ska strängen lagras”);
Om det uppstår ett fel när strängen tas emot, returnerar gets-funktionen ett nollvärde.
Se exemplet nedan,
Figur 03: blir
Indata tas emot av gets-funktionen och lagras i variabel word1. Om programmeraren använde scanf istället för att hämta och mata in en sträng som "hej världen", kommer scanf att läsa strängen som två strängar på grund av blanksteg. Men gets kommer att läsa det som en sträng "hej värld".
Vilka är likheterna mellan scanf och gets?
- Båda är funktioner som tillhandahålls av programmeringsspråket C.
- Båda bör inkludera rubrikfilen stdio.h för att använda dessa funktioner.
- Båda kan användas för att få input från standardingången.
Vad är skillnaden mellan scanf och gets?
scanf vs gets |
|
scanf är en C-funktion för att läsa indata från standardingången tills du stöter på ett blanksteg, nyrad eller EOF. | gets är en C-funktion för att läsa indata från standardinmatning tills du stöter på en ny rad eller EOF. Den betraktar blanksteg som en del av inmatningen. |
Syntax | |
scanf-funktionen tar formatsträngen och listan över adresser för variabler. t.ex. scanf(“%d”, &number); | gets-funktionen tar namnet på variabeln för att lagra det mottagna värdet. T.ex. gets(name); |
Flexibilitet | |
scanf kan läsa flera värden av olika datatyper. | gets() kommer bara att få teckensträngsdata. |
Sammanfattning – scanf vs gets
scanf och gets är funktioner som tillhandahålls av programmeringsspråket C. Användaren behöver inte implementera dessa funktioner från början. De kan använda dem direkt i sina program. Skillnaden mellan scanf och gets är att scanf slutar ta inmatning vid möte med ett blanksteg, nyrad eller End Of File (EOF) och betraktar ett blanksteg som en del av inmatningssträngen och avslutar inmatningen vid möte med nylinje eller EOF. Att använda scanf eller gets beror på hur man tar emot användarindata från standardingången som är tangentbordet för det mesta. scanf är mer flexibelt än vad det blir.
Ladda ned PDF-versionen av scanf vs gets
Du kan ladda ner PDF-versionen av den här artikeln och använda den för offlineändamål enligt citat. Ladda ner PDF-versionen här Skillnaden mellan scanf och gets