Cvičenie 12 Dušan Lago IB001 28.11.2013 Agenda 1 Typ union 2 Súborový vstup a výstup union ∙ podobný struct ∙ premenné zdieľajú pamäťové miesto, ktoré je veľkosti najväčšieho z nich program00 Ukážka práca so súbormi ∙ postupnosť bitov, bytov, blokov, atď. uložená na médiu ∙ textová alebo binárna ∙ štruktúra FILE ∙ FILE* subor; fopen, fclose ∙ otvorenie ∙ FILE* subor = fopen("názov.txt", "r"); ∙ mód: r, w, a, r+, w+, a+(b) ∙ return NULL || adresa štruktúry; ∙ zatvorenie ∙ fclose(subor); ∙ return EOF || 0; fgetc, fputc ∙ čítanie ∙ fgetc(subor); ∙ return EOF || int; ∙ zápis ∙ fputc(’a’, subor ∙ return EOF || int; fgetc, fputc program01 Otvorte predpripravený súbor original.txt a pomocou funkcií fgetc a fputc vytvorte jeho kópiu. Kópiu uložte do súboru copy.txt. fgetc, fputc program02 program01 doplňte o korektné testovanie práce so súbormi. fgetc, fputc program03 Vytvorte program, ktorý vytvorí súbor oneline.txt, ktorý bude kópiou súboru original.txt bez zalomení riadkov. fscanf, fprintf ∙ čítanie ∙ fscanf(subor, "%d %f %s", &n, &m, string); ∙ return počet úspešne načítaných položiek; ∙ zápis ∙ fprintf(subor, "%d %f %s", 1, 1.2, "string"); ∙ return počet úspešne zapísaných znakov; fscanf, fprintf program04 Vytvorte program, ktorý spočíta súčet hodnôt typu float v súbore numbers.txt. fflush, ftell, fseek ∙ vyprázdnenie buffru ∙ fflush(subor); ∙ return EOF || O ∙ aktuálna pozícia ∙ ftell(subor); ∙ return -1 || pozícia ∙ nastav pozíciu ∙ fseek(subor, 12, SEEK_SET); ∙ return nenulový int || 0 rewind, feof ∙ nastavenie pozície na začiatok ∙ rewind(subor); ∙ testovanie konca súboru ∙ feof(subor); ∙ return 0 ak nie je koniec; fscanf, fprintf program05 program04 doplňte tak, že hodnoty v otvorenom súbore numbers.txt prečítate znovu a čítanie ukončí feof. binárne dáta - fread, fwrite ∙ čítanie ∙ size_t fread (void * ptr, size_t size, size_t count, FILE * stream ); ∙ return počet úspešne načítaných prvkov; ∙ zápis ∙ size_t fwrite (const void * ptr, size_t size, size_t count, FILE * stream ); ∙ return počet úspešne zapísaných prvkov; ∙ ukážka program06.c