Formátované vstupy a výstupy



Hlavním cílem této domácí úlohy je opakování základů jazyka C.

1) Na základě zadání vypracujte program, který načte ze souboru data a následně je vytiskne. Jméno souboru je předáno jako parametr na příkazové řádce - překontrolujte zda je skutečně přítomno, nezapomínejte, že otevřený soubor je potřeba po použití uzavřít. Jeden řádek dat vstupního souboru lze načíst jedním příkazem (f)scanf.

2) Upravte/doplňte program z bodu 1) tak, aby jeho výstupem nebyla konzola (obrazovka), ale soubor, jehož název je dán jako parametr na příkazové řádce programu. „Přepnutí“ mezi bodem 1) a 2) proveďte pomocí podmíněného překladu (příkaz #define TYP_TISK), tak aby si uživatel zvolil verzi, kterou přeloží. (viz příklad - není součástí DU)

3) Napište funkci, která bude mít jako parametr načtené pole pro tisk, která vytiskne statistiku přítomných znaků. Pro každý znak, který se vyskytne, se vypíše řádek s obsahem: hexa kód znaku, znak, počet znaků, četnost znaků (s přesností na jedno desetinné místo). Sloupce tabulky budou zarovnány tak aby příslušné řády byly pod sebou (viz. příklady nasobilka, cosinus - nejsou součástí DU).
Tisk například:
0x?? a 20 10.3%
0x?? b  1  0.5%



Součástí textu zadání jsou odkazy na kapitoly skript s příslušnou látkou a odkazy na příklady ze cvičení denního kurzu. Práce s MSVC (založení a práce s projektem, předání parametrů na příkazovém řádku) je popsána zde.

Projekt bude obsahovat následující soubory (přesně s těmito názvy. Odevzdáte pouze tyto tři soubory):
mainprj.cpp - zde bude funkce main, práce se soubory (kontroly, otevření ...), volání funkcí ...
funkce.cpp - zde budou všechny funkce projektu
funkce.h - hlavičkový soubor (ošetřený ...) pro zveřejněné funkce ze souboru funkce.cpp



Text zadání budu doplňovat/upřesňovat na základě vašich dotazů, takže ho průběžně sledujte.











Poslední změna 2011-09-26