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 reprezentující pole znaků. Po načtení je orámuje/doplní po obvodu znaky – nahoře a dole znakem ´-´, vlevo a vpravo znakem ´I´ a následně data vytiskne. Jméno souboru s daty 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 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 písmen (malé a velké společně) a číslic (použijte funce isalfa, isdigit, isnumber, ...). Pro každý znak, který se vyskytne, se vypíše řádek s obsahem: hexa kód znaku malého, hexa kód znaku velkého, znak malý, znak velky, počet znaků (malý a velký dohromady), četnost znaků (s přesností na dvě desetinná místa). Sloupce tabulky budou zarovnány tak aby příslušné řády byly pod sebou (viz. příklady nasobilka, cosinus - nejsou součástí DU). Na závěr vytiskněte prázný řádek a potom zopakujte tiskové řádky pro tři znaky s nejčastějším výskytem.
Tisk například:
0x?? 0x?? aA 20 10.3%
0x?? 0x?? bB  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):
hlavni.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 2013-09-21