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