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, orámuje je po obvodu znakem X a následně 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 SOUBOR), 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é) a
čísel (použijte funce isalfa, isdigit, isnumber, ...). 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):
proj_main.cpp -
zde bude funkce main, práce se soubory (kontroly, otevření ...),
volání funkcí ...
tisky.cpp - zde budou všechny
funkce projektu
tisky.h - hlavičkový soubor
(ošetřený ...) pro zveřejněné funkce ze souboru tisky.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 2012-09-21