Branje in pisanje z oprimki (sprotna naloga)
V sklopu te naloge demonstrirajte uporabo oprimkov in ustreznih funkcij za pisanje in branje iz različnih virov. Pripravite 3 programe, ki izvedejo v nadaljevanju opisane naloge.
Pripravite tudi Makefile, ki bo vašo kodo prevedel v izvedljive programe. Posamezni naslov podnaloge v nadaljevanu so sestavljeni iz pričakovanega imena programa (mora biti tako) in pričakovanega imena izvorne zbirke (to je lahko drugačno, dokler jih vaš Makefile pravilno prevede).
Na sistem oddajte .zip paket z Makefile skripto in izvornimi zbirkami. Bodite pozorni na poimenovanja. Pred oddajo preverite delovanje z avtomatskim preizkusom. naloga_1 (naloga_1.c)
Programu bo v prvem argumentu podana pot do zbirke. Zbirko odprite, preberite vsebino in preštejte število pojavitev simbola 'a'. Na koncu izpišite prešteto število ponovitev. Velikosti zbirke ne boste mogli določiti vnaprej, brati morate dokler ne prejmete informacije o koncu zbirke. naloga_2 (naloga_2.c)
Program bo v prvih treh argumentih prejel eno celo število, eno realno število in še eno celo število. Te lahko iz simbolov pretvorite v vrednosti z:
int i = atoi(argv[1]); float j = atof(argv[2]); int k = atoi(argv[3]);
Ta števila izpišite v formatirani obliki. Za formatiranje morate uporabiti funkcijo printf. Ne smete implementirati lastnega formatiranja z if stavki in zankami.
Za prvo število naj izpiše vsaj tri števke, krajša števila pa naj z leve zapolni z 0. Pred število naj vedno izpiše + za pozitivna in - za negativna števila.
Za drugo število naj izpiše 3 decimalna mesta.
Za tretje število naj bo izpis v hexadecimalni obliki z 0x simbolom na začetku.
Primer izpisa:
$ ./naloga_2 4 12.0532154 255 int: +004 float: 12.053 hex: 0xFF
naloga_3 (naloga_3.c)
Program naj s standardnega vhoda bere binarne podatke, v obliki strukture: struct {char[4], short, int}. V 4 znakih je opisan format (brez 0 na koncu), nato v short sledi glavna verzija in v int manjša verzija. Vsak prejet podatek naj izpiše kot formatiran niz:
= <večja verzija>.<manjša verzija>
Program se zaključi ko prebere celotno vsebino vhoda. Primer izpisov:
JPEG = 2.14 PNG = 0.5 WEBM = 66.6