Pro správný chod programu je vhodné (většinou nutné) komunikovat s uživatelem. K tomuto účelu lze jako nejjednodušší možnost využít konzoli (někdy nazývání příkazový řádek).

<aside> 💡 Existují i jiné možnosti komunikace s uživatelem jako je například GUI – grafické rozhraní.

</aside>

<aside> ☝ Před konzolovým vstupem a výstupem je dobré si zopakovat:

</aside>

Základní ukázka výpisu pomocí printf()

#include <stdio.h>

int main() {
	// výpis textu
  printf("Hello World!");
  return 0;
}

Při výpisu je používána funkce printf(), kterou lze využít v libovolné funkci nebo proceduře. Základní funkce, ve které lze tuto funkci použít je už samotná funkce main(). Tato funkce se spouští jako první funkce při zapnutí programu, tedy můžeme v této funkci vypisovat hodnoty.

Základní syntaxe funkce printf()

// úplně nahoře v našem programu (nad funkcí main, co nejblíže řádku 1)
#include <stdio.h>

// uvnitř funkce - třeba funkce main() nebo vlaší vlastní funkce
// někde mezi {.. printf(...); ...} dané funkce. Viz ukázka výše s
// printf("Hello World!");
printf(string, ...)

Jelikož funkce printf() je v našem programu nedefinovaná (my ji nevytvořili), musíme vždy nahoru do pomocí #include <stdio.h> vložit knihovnu <stdio.h> (konkrétně její hlavičkový soubor .h), která obsahuje právě tuto funkci definovanou. Jinak by náš program nemohl fungovat a funkce printf() by byla nenalezena, což by mělo za následek chybu programu nebo nemožnost program zkompilovat.

Ukázky výpisu dat pomocí printf()

Pokud chceme vypsat text uvádíme ho do uvozovek "Váš libovolný text". Ukázky výpisu lze vložit do funkce main(), ve které byla testována funkčnost (viz Základní ukázka výpisu pomocí printf()).

<aside> 💡 Na většině OS (Windows, Linux) není možné používat diakritiku ve výpisu. MacOS s tímto problém nemá.

Důvod je, že text je uložen jako skupina znaků char, kde žádná diakritika u znaků neexistuje (viz. Proměnné v jazyce C).

</aside>

<aside> 💡 Výpis se libovolně kombinuje jak se zalomením řádku, tak s proměnnými. Vše záleží jen na vaší fantazii.

</aside>

Získání dat pomocí scanf() z klávesnice

<aside> ☝ Tabulku pro vyhrazené znaky (Format Specifiers) používané pro ukázky níže lze nalézt v [Format Specifiers pro datové typy při výpisu nebo čtení](https://jakubforman.notion.site/Format-Specifiers-pro-datov-typy-p-i-v-pisu-nebo-ten-361b898ed07c42df9d08330d87f97865)

</aside>

Ukázky výpisu lze vložit do funkce main(), ve které byla testována funkčnost (viz Základní ukázka výpisu pomocí printf()).

<aside> 💡 Získání vstupu od uživatele je druhá základní schopnost programu, bez které se nelze obejít.

</aside>

Základní syntaxe funkce scanf()

// úplně nahoře v našem programu (nad funkcí main, co nejblíže řádku 1)
#include <stdio.h>

// uvnitř funkce - třeba funkce main() nebo vlaší vlastní funkce
// někde mezi {.. scanf(...); ...} dané funkce. Viz ukázka výše s
// printf("Hello World!");
data_type variable; // definice proměnné
scanf(format, &variable) // načtení do proměnné skrze &

Jelikož funkce scanf() je v našem programu nedefinovaná (my ji nevytvořili), musíme vždy nahoru do pomocí #include <stdio.h> vložit knihovnu <stdio.h> (konkrétně její hlavičkový soubor .h), která obsahuje právě tuto funkci definovanou stejně jako v případě printf(). Jinak by náš program nemohl fungovat a funkce scanf() by byla nenalezena, což by mělo za následek chybu programu nebo nemožnost program zkompilovat.