scanf()

Funkcia scanf() slúži na načítanie formátovaného textu zo štandardného vstupu používateľa (klávesnica → konzola).  Je to veľmi užitočná funkcia, ale aby sme predišli častým chybám je potrebné mať niektoré veci na pamäti.

Ako ju teda použiť ?

scanf(%<údajový _typ>, &<názov_premennej>)

V našom prípade napr.

scanf(%f , &EUR);


Za znak % sa dávajú rôzne znaky (d, f, c, s ....). Tým sa definuje aký údajový typ sa zo štandardného vstupu očakáva. 

%d – Celé číslo (int),  %f – Reálne číslo (float),  %c – Znak (char),  %s – Reťazec znakov, %iné – samoštúdium ...

#include <stdio.h>

int main()
{
    float EUR=0;
	// do premennej EUR, ktorá je údajového typu float sa načíta hodnota zadaná z príkazového riadka
    scanf("%f",&EUR);
    return 0;
}


POZOR častá chyba! - nezabudnite na znak &. O jeho význame v jazyku C budeme hovoriť neskôr. Zatiaľ Vám stačí vedieť, že ak načítavame jeden znak alebo jedno číslo, je potrebné dávať pred názov premennej &.

Funkcia scanf() pracuje s "miestom" v pamäti teda adresou premennej a nie s jej hodnotou!  


printf()

Funkcia printf() slúži na vypísanie formátovaného textu na štandardný výstupu používateľa (konzola → monitor). 

Ako ju teda použiť ?

printf(Ľubovoľný text %<údajový _typ> iný text ... , <názov_premennej>);

V našom prípade napr.

printf(\n\t Hodnota %.2f EUR je %.2f SKK\n"EURSKK);


Pokiaľ chceme výstup formátovať je potrebné poznať riadiace znaky, ktoré uvádzame za spätné lomítko “\”.

\n – Nový riadok

\t – Tabulátor

Pokiaľ chceme aby vypísané číslo malo definovanú minimálnu šírku (teda zobrazí definovaný počet znakov) stačí za znak % dať číslo definujúce počet miest napr. %4d

Pri reálnom čísle môžeme tiež zadať počet zobrazovaných desatinných miest. %.2f


#include <stdio.h>

int main()
{
	float EUR=10;
	float SKK=301,26;

	printf("\n\tHodnota %.2f EUR je %.2f SKK\n",EUR,SKK);

	return 0;
}

Iné funkcie knižnice STDIO.H

Knižnica obsahuje množstvo ďalších funkcií pre prácu so štandardným vstupom. Napríklad funkcia int getchar() pre načítanie jedného znaku z klávesnice alebo int putchar() pre vypísanie jedného znaku. Táto knižnica obsahuje tiež funkcie pre prácu so súbormi či sériovou linkou a podobne. Viac sa o tom budeme učiť neskôr. Kto má záujem, môže si funkcie z tejto knižnice pozrieť tu



  • No labels