spatna funkce switch case

To máš celé nějaké zmatené:

  • z funkce klavesnice_cteni se Ti to nikdy nevrátí, ty příkazy “break” platí jen pro přerušení větví switche

  • Voláš s nekonečnou rekurzí funkce posun_radku/zakmit s klavesnice_cteni, takže po pár průchodech se Ti zahltí stack a program se zblázní

  • “osetreno” nemá vlastně žádný význam, to nemáš dobře promyšlené. V jednom okamžiku přečteš a zobrazíš klávesu, hned to zas smažeš, počkáš 20 ms a znovu testuješ - to není ošetření zákmitů, díky tomu vidíš trvale že nic nebylo stisknuto

Možná jsi zvyklý z BASICu nebo assembleru že se skáče na labely. Ale funkce v C jsou podprogramy do kterých se vleze (uloží se návratová adresa do zásobníku) a ze kterých se to po ukončení vrátí (obnoví se ze zásobníku původní adresa programu).