Taula de continguts:
Definició: què significa Scanf?
En el llenguatge de programació C, scanf és una funció que llegeix dades formateades de stdin (és a dir, el flux d’entrada estàndard, que sol ser el teclat, tret que es redirigeixi) i, a continuació, escriu els resultats en els arguments indicats.
Aquesta funció pertany a una família de funcions que tenen la mateixa funcionalitat però difereixen només pel que fa a la seva font de dades. Per exemple, fscanf obté la seva entrada d'un arxiu de fitxers, mentre que sscanf obté la seva entrada d'una cadena.
Techopedia explica Scanf
La funció scanf té el prototip / signatura següent:
int scanf (format const char *, …);
on
- int (enter) és el tipus de retorn
- format és una cadena que conté el tipus d'especificador (veure més avall)
- "…" (el·lipsi) indica que la funció accepta un nombre variable d'arguments; cada argument ha de ser una adreça de memòria on s’escrigui el resultat convertit
Un especificador de tipus simple consisteix en un símbol per cent (%) i un caràcter alfa que indica el tipus. A continuació, es mostren alguns exemples dels especificadors de tipus reconeguts per scanf:
- % c - Caràcter
- % d: nombre sencer signat
- % x: nombre enter no signat en format hexadecimal
- % f - Punt flotant
- % s: Cadena
La funció funciona mitjançant la lectura d’entrada del flux d’entrada estàndard i després escaneja el contingut del "format" per a qualsevol especificador de format, intentant coincidir amb els dos. En tenir èxit, la funció escriu el resultat en els arguments (s) aprovats.
Per exemple, si la funció de trucada és
scanf ("% c% d", & var1 i & var2);
i l'usuari escriu "a1", la funció escriurà "a" a "var1" i "1" a "var2". Si la funció truca, però, ho és
scanf ("% x", & var);
Es llegirà la mateixa entrada que el nombre hexadecimal "a1", que és 161 en decimal.
La funció retorna el valor següent:
- > 0 - El nombre d’elements convertits i assignats amb èxit.
- 0 - No s'ha assignat cap element.
- <0: error de lectura o error de final de fitxer (EOF) aconseguit abans de realitzar qualsevol tasca.