PVA 3: 07

Skripta

07-soubory.pdf

Programy

sw1.c sw2.c starwars.ascii starwars2.ascii

Úloha

Standard C pohlíží na konzoli jako na výstupní zařízení, do kterého posíláme znaky formou datového toku. OS je méně abstraktní: pohlíží na konzoli jako na HW, který má rozlišení (výchozí 80x25), na kterém je možné zobrazovat znaky na libovolné pozici. První pohled reprezentuje program sw1.c, který využívá standardní funkci puts, druhý pohled sw1.c s využitím winAPI funkce WriteConsoleOutputCharacterA - ten by měl být znatelně rychlejší (největší zpomalení způsobuje příkaz system("cls"), ale i bez něj je druhý program rychlejší).

Oba programy používají ASCII art starwars2.ascii kreslený formou posloupnosti znaků (pro HW pohled neexistuje pojem konec řádky, jen souřadnice, do kterých se zapisují data). Upravte alespoň jeden program tak, aby dokázal pracovat s ASCII artem tak, jak ho kreslíme v editoru (soubor starwars.ascii, tj. napište program, který každý řádek doplní mezerami na 80 znaků a nahradí tak konce řádků.

Program udělejte pomocí parametrů příkazové řádky, např. spustíme-li compileascii starwars.ascii -o starwars2.ascii, vygeneruje se ze starwars.ascii soubor starwars2.ascii do podoby, jakou vidíte ve výšeuvedených odkazech.