|
A nagy testvér figyel téged! #12
Adott a következő fejlécállomány:
myheader.h
#ifndef _MYHEADER_H #define _MYHEADER_H 1
struct element { char name[20]; int hour; int minute; };
#endif /* myheader.h */
letöltés szöveges állományként
Írjon programot, amelynek egyetlen parancssori argumentuma van, egy bináris állomány neve! A
bináris állomány struct element típusú rekordjaiban dolgozóknak egy épületbe
történő be- és kilépési idejei találhatók. A dolgozókat a nevükkel azonosítjuk, nincs két
azonos nevű dolgozó. Az adatokat az épület nyitásától gyűjtjük, és feltételezhetjük, hogy az
épület a nyitáskor üres volt. Amikor egy dolgozó be- vagy kilép az épületből, egy-egy újabb
rekord kerül rögzítésre ebbe az állományba.
A programja írja a standard kimenetre a dolgozók neveit lexikografikusan növekvő sorrendben!
Minden dolgozó neve mellett jelenítse meg a példa kimenetben látható módon azt is, hogy mikor
lépték át utoljára az épület küszöbét (az mindegy, hogy melyik irányban)! Az időpont
formázásánál ügyeljen rá, hogy a perc adatokat minden esetben két számjeggyel adja meg
(vezető nulla számjeggyel, ha szükséges)!
Egy employees.bin bináris állományt generáló példaprogram
#include <stdio.h> #include <stdlib.h>
#include "myheader.h"
int main() { struct element t[] = { {"Peter", 8, 0}, {"Molly", 8, 5}, {"George", 8, 10}, {"Peter", 9, 0}, {"George", 10, 15} }; FILE *f = fopen("employees.bin", "wb"); fwrite(t, sizeof(t), 1, f); fclose(f); return EXIT_SUCCESS; }
letöltés szöveges állományként
Parancssori argumentumok
employees.bin
letöltés szöveges állományként
A futtatás eredménye a standard kimeneten
George: 10.15 Molly: 8.05 Peter: 9.00
letöltés szöveges állományként
|
|