Zadání domácí části testu č. 1 z BPC2A (2017)
Práce se soubory a zpracování dat v nich uložených
Ve funkci main() definujte proměnnou soubor_vstup, která bude obsahovat jméno textového souboru ("vstup.in"), tato proměnná bude inicializovaná v definici (tak, aby obsahovala řetězec "vstup.in"). Datovým typem proměnné má být pole znaků (unsigned char).
Otevřete soubor, jehož jméno je uloženo v proměnné soubor_vstup, s oprávněním pouze pro čtení. Uvažujte textový soubor.
Zkontrolujte, zda otevření souboru proběhlo korektně. V případě, že se soubor nepodařilo otevřít, vypište na konzolu chybové hlášení: “Nepodarilo se otevrit vstupni soubor!“ a program ukončete s návratovým kódem 1.
Napište funkci Vystup(), která bude číst znaky z otevřeného souboru do pole znaků Radek a po přečtení celého řádku znaky vytiskne na konzolu. Tímto způsobem postupně zpracujte celý soubor. Řádek jsou znaky ukončené znakem konec řádku. Předpokládejte řádek do délky 25 znaků. V případě, že řádek bude delší, ukončete funkci s návratovou hodnotou -2. Funkce Vystup() bude mít jeden parametr pojmenovaný aSoubor typu FILE*. Na konci funkce na konzole odřádkujte. Funkce Vystup() vrací počet přečtených znaků ze souboru. Dojde-li k předání neplatného parametru (NULL) ukončete funkci Vystup() s návratovou hodnotou -1.
Ve funkci main() zavolejte funkci Vystup(). V případě, že funkce Vystup() neskončila chybou, vytiskněte na konzolu počet přečtených znaků ze souboru a odřádkujte. Počet znaků vytiskněte tak, aby jednotky byly vždy na stejné pozici od začátku řádku pro tisk načtených znaků do 1GB. V případě, že funkce Vystup() skončila chybou, program ukončete s návratovým kódem 2. Při úspěšném provedení programu vracejte jako návratovou hodnotu 0.
Upravte
program tak, aby se název otevíraného souboru zadával při volání z
příkazové řádky. Jeho název se tedy dostane do programu v parametru
funkce main (argc, argv). Proveďte test na přítomnost názvu souboru
na příkazové řádce a v případě, že nebude zadán, použijte dříve
nadefinovaný název.
Pro účely ladění v prostředí VS, je možné
název souboru zadat v parametrech projektu
(properties/debugging/command arguments)
Pozn.: zkuste zavolat funkci Vystup dvakrát za sebou tak, aby dávala stejný výsledek – úpravu pro dosažení stejného výsledku proveďte mezi voláními funkcí. (V případě, že se budou výsledky volání lišit, nastudujte jak se chová a následně použijte funkci rewind).
Poslední změna 2018-03-05