Tartalomjegyzék:
Meghatározás - Mit jelent a Scanf?
A C programozási nyelvben a scanf egy olyan funkció, amely leolvassa a formázott adatokat a stdin-től (azaz a szokásos bemeneti adatfolyamtól, amely általában a billentyűzet, kivéve, ha átirányításra kerül), majd az eredményeket a megadott argumentumokba írja.
Ez a funkció azon funkciócsaládhoz tartozik, amelyek ugyanolyan funkcióval rendelkeznek, de csak az adatforrásuk szerint különböznek egymástól. Például az fscanf bemenetét fájlfolyamból kapja, míg az sscanf bemenetét karakterláncból.
A Techopedia magyarázza a Scanf-et
A scanf funkciónak a következő prototípusa / aláírása van:
int scanf (const char * formátum, …);
hol
- int (egész szám) a visszatérési típus
- A formátum egy karakterlánc, amely a típusazonosító (ka) t tartalmazza (lásd alább)
- "…" (ellipszis) azt jelzi, hogy a függvény változó számú argumentumot fogad el; minden argumentumnak memóriacímnek kell lennie, ahova a konvertált eredményt írják
Az egyszerű típusleíró egy százalék (%) szimbólumból és egy típust jelző alfa karakterből áll. Az alábbiakban található néhány példa a scanf által felismert típus-specifikátorokra:
- % c - karakter
- % d - Aláírt egész szám
- % x - Aláíratlan egész hexadecimális formátumban
- % f - lebegőpont
- % s - karakterlánc
A funkció úgy működik, hogy beolvassa a bemenetet a szokásos bemeneti adatfolyamból, majd beolvassa a "formátum" tartalmát bármely formátum-meghatározóhoz, megpróbálva a kettőt egyeztetni. Siker esetén a függvény beírja az eredményt a továbbított argumentum (ok) ba.
Például, ha a függvényhívás
scanf ("% c% d", & var1, & var2);
és a felhasználó az "a1" -t írja be, a funkció az "a" -ot "var1" -be és "1" -et "var2" -be írja. Ha azonban a funkcióhívás van
scanf ("% x", & var);
ugyanazt a bemenetet kell olvasni, mint az "a1" hexadecimális számot, amely tizedesjegyben 161.
A függvény a következő értéket adja vissza:
- > 0 - a sikeresen átalakított és hozzárendelt elemek száma.
- 0 - Nincs elem hozzárendelve.
- <0 - Olvasott hiba vagy a fájl végének (EOF) elérése a hozzárendelés elvégzése előtt.




