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", EUR, SKK);
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.