ccpp:scanf

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.

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

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);

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;
}
  • ccpp/scanf.txt
  • Poslední úprava: 2020/11/13 11:12
  • autor: bures