Funkce scanf()
Funkce scanf()
slouží k načítání vstupu ze standardního vstupu. Jedná se o formátovaný vstup, takže můžeme přesně specifikovat v jakém tvaru má vstup být a funkce to při svém zpracování vezme v potaz.
Funkce při svém vykonání počká, až uživatel zadá nějaký text na standardní vstup. Následně ho přečte, porovná s formátovacím řetězcem a pokusí se naplnit proměnné programu.
Parametry
Obvykle má minimálně dva parametry - formátovací řetězec a odkaz na proměnnou.
Formátovací řetězec - zpravidla obsahuje specifikátor začínající znakem %
, který určuje datový typ hodnoty, kterou chceme načíst.
Odkaz na proměnnou - správně ukazatel na proměnnou, nebo adresa proměnné - je typicky &
(ampersand) a název proměnné. Např.: &promenna
Specifikátory
Datový typ | specifikátor | Volání |
---|---|---|
short | %hd | short prom; scanf("%hd", &prom); |
unsigned short | %hu | unsigned short prom; scanf("%hu", &prom); |
int | %d, nebo %i | int prom; scanf("%d", &prom); |
unsigned | %u | unsigned prom; scanf("%u", &prom); |
long | %ld | long prom; scanf("%ld", &prom); |
unsigned long | %lu | unsigned long prom; scanf("%lu", &prom); |
long long | %lld | long long prom; scanf("%lld", &prom); |
unsigned long long | %llu | unsigned long long prom; scanf("%llu", &prom); |
char | %c | char prom; scanf("%c", &prom); |
Příklad
Program v tomto příkladu požádá uživatele o zadání 2 hodnot (celočíselná a s plovoucí čárkou). Příklad je kompatibilní s kompilátorem VC+
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int main() { int celeCislo; printf("Zadejte cele cislo:"); scanf("%d", &celeCislo); double cislo; printf("Zadejte desetinne cislo (s desetinnou teckou):"); scanf("%lf", &cislo); // Výpis zadaných hodnot printf("Zadane cele cislo je %d\n", celeCislo); printf("Zadane cislo s plovouci carkou je %lf\n", cislo); return 0; }