Diskuze: Chyba pri načítavani.
Zobrazeno 2 zpráv z 2.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
Chyba vzniká tím že po načtení hodnoty Ti ve vstupním bufferu zůstává znak odřádkování '/n', který je následně načten další vstupní funkcí a dochází tak k přeskočení načtení následné hodnoty.
A teď postupně k jednotlivým částem programu:
Knihovny stdlib.h a string.h vkládáš zbytečně, nevyužíváš nic z těchto knihoven. Jediná knihovna využitá v programu je stdio.h.
Pokud v programu používáš konstantu na vícero místech, je dobré si tuto konstantu definovat pomocí klíčového slova const nebo pomocí direktivy preprocesoru #define. Vyhneš se tak mnoha nepříjemnostem a ušetříš dost času v případném ladění.
Pokud program nevyužívá argumentu příkazového řádku, používej klíčové slovo void.
Funkce gets() je zastaralá a už není překladači podporována. Místo toho se používá její obecná varianta fgets(), která je bezpečnější, neboť obsahuje ochranu přetečení (druhý parametr). Pro načtení z konzole se používá stream stdin (třetí parametr). Dále je třeba myslet na to, že funkce fgets() načítá i znak nového řádku. Tento znak můžeš buďto odstranit nebo ho tam nechat a počítat s ním při výpisu (již znovu neodřádkovávat).
Mezi jednotlivými vstupními funkcemi je nutné vyprazdňovat vstupní buffer, jinak budou zbylé znaky, které se v něm nacházejí, aplikovány pro další vstupní funkci (chyba programu).
Např.
fseek(stdin, 0L, SEEK_END);
Téměř všechna identifikátory uzivatelia[i] jsou chybné (obsahují v sobě smetí u druhého písmene "i"). je nutné je všechny smazat a znova napsat (nekopírovat).
Zobrazeno 2 zpráv z 2.