Inhoudsopgave:
Definitie - Wat betekent Scanf?
In de C-programmeertaal is scanf een functie die opgemaakte gegevens van stdin leest (dwz de standaardinvoerstroom, meestal het toetsenbord, tenzij omgeleid) en de resultaten vervolgens in de gegeven argumenten schrijft.
Deze functie behoort tot een familie van functies die dezelfde functionaliteit hebben, maar alleen verschillen in hun gegevensbron. Fscanf haalt bijvoorbeeld de invoer uit een bestandsstream, terwijl sscanf de invoer ontvangt van een string.
Techopedia legt Scanf uit
De scanf-functie heeft het volgende prototype / handtekening:
int scanf (const char * formaat, …);
waar
- int (geheel getal) is het retourtype
- formaat is een string die de typeaanduider (s) bevat (zie hieronder)
- "…" (weglatingsteken) geeft aan dat de functie een variabel aantal argumenten accepteert; elk argument moet een geheugenadres zijn waarnaar het geconverteerde resultaat wordt geschreven
Een eenvoudige typespecificatie bestaat uit een percentagesymbool (%) en een alfateken dat het type aangeeft. Hieronder volgen enkele voorbeelden van de typeaanduidingen die worden herkend door scanf:
- % c - teken
- % d - Getekend geheel getal
- % x - Niet-ondertekend geheel getal in hexadecimaal formaat
- % f - drijvend punt
- % s - String
De functie werkt door invoer van de standaardinvoerstream te lezen en scant vervolgens de inhoud van "format" voor alle indelingsspecificaties, in een poging de twee te matchen. Bij succes schrijft de functie het resultaat in het doorgegeven argument (en).
Als de functieaanroep bijvoorbeeld is
scanf ("% c% d", & var1, & var2);
en de gebruiker typt "a1", de functie schrijft "a" in "var1" en "1" in "var2". Als de functieaanroep echter is
scanf ("% x", & var);
dezelfde invoer wordt gelezen als het hexadecimale getal "a1", dat 161 decimaal is.
De functie retourneert de volgende waarde:
- > 0 - Het aantal items dat met succes is geconverteerd en toegewezen.
- 0 - Er is geen item toegewezen.
- <0 - Er is een leesfout opgetreden of het einde van het bestand (EOF) is bereikt voordat een toewijzing werd uitgevoerd.
