Innehållsförteckning:
Definition - Vad betyder Scanf?
På C-programmeringsspråket är scanf en funktion som läser formaterad data från stdin (dvs. standardinmatningsströmmen, som vanligtvis är tangentbordet, såvida inte omdirigeras) och sedan skriver resultaten till de angivna argumenten.
Denna funktion tillhör en familj av funktioner som har samma funktionalitet men skiljer sig bara i deras datakälla. Till exempel får fscanf sin inmatning från en filström, medan sscanf får sin inmatning från en sträng.
Techopedia förklarar Scanf
Scanf-funktionen har följande prototyp / signatur:
int scanf (const char * -format, …);
var
- int (heltal) är returtypen
- format är en sträng som innehåller typspecifikationen (se nedan)
- "…" (ellipsis) indikerar att funktionen accepterar ett variabelt antal argument; varje argument måste vara en minnesadress där det konverterade resultatet skrivs till
En enkel typspecifikation består av en procent (%) symbol och ett alfakaraktär som indikerar typen. Nedan följer några exempel på typspecifikationer som igenkänns av scanf:
- % c - karaktär
- % d - Signerat heltal
- % x - Osignerat heltal i hexadecimalt format
- % f - Flytande punkt
- % s - Sträng
Funktionen fungerar genom att läsa inmatning från standardinmatningsströmmen och skannar sedan innehållet i "format" för alla formatspecifikationer och försöker matcha de två. Vid framgång skriver funktionen resultatet in i de argument som gått.
Till exempel, om funktionssamtalet är
scanf ("% c% d", & var1, & var2);
och användaren skriver "a1" kommer funktionen att skriva "a" till "var1" och "1" till "var2". Om funktionssamtalet emellertid är
scanf ("% x", & var);
samma input kommer att läsas som det hexadecimala talet "a1", som är 161 i decimal.
Funktionen returnerar följande värde:
- > 0 - Antalet objekt konverterade och tilldelade framgångsrikt.
- 0 - Ingen artikel tilldelades.
- <0 - Läsfel som uppstod eller filens slut (EOF) uppnåddes innan någon tilldelning gjordes.
