Vypuštění komentářů

Zadání:

Napište program, který vypustí komentáře ze souboru (zdrojový nebo hlavičkový jazyka C/C++) a výsledek zapíše do jiného souboru.





Nápověda:

příkaz switch realizuje větvení na základě celočíselné proměnné reprezentující akuální stav programu. Celočíselnou proměnnou může být kód stavu, ve kterém se nachází vyhodnocování. Podle aktuálně načteného znaku ze souboru se stav může změnit. Těmito stavy může například být:

TEXT – jsme uprostřed textu, který se kopíruje na výstup (objeví-li se lomítko, je nutno se přepnout do stavu, kdy lze očekávat komentář – lomítko se na výstup nezapíše)

LOMITKO – minulý znak bylo lomítko (podle aktuálního znaku poznáme, zda se jedná o /*, // nebo skutečně o lomítko

C_KOMENT – jsme uvnitř komentáře /*, hvězdička je potencionální konec

HVEZDICKA – je-li aktuálně lomítko, končí komentář, je-li to jiný znak, vracíme se do C_KOMENT

CPP_KOMENT – jsme uvnitř řádkového komentáře – končí koncem řádky (pak je TEXT)



Doporučený postup řešení:





Pro pokročilé

Doplňte program tak, aby řešil i:

- situaci, kdy se znak pro komentář objeví v řetězci. Např.: printf(“Komentář se píše takto: /* tady je komentář */ nebo takto: // tady je \“řádkový\“ komentář “);

- situaci, kdy by se ve výstupu nemělo objevit více prázdných řádků za sebou (např. když vypouštíme 10 jednořádkových komentářů za sebou). Lze zkusit i jako druhý program a následné zřetězení pomocí roury (neboli pipe). (příklad volání kom_destr.exe <zdroje.cpp | radky_destr.exe >zdroje_vyst.cpp)







Poslední změna: 2008-10-02