Assignment CSE1320

Machines have far more file storage space than memory space.  Because of this, applications will only load in resources that are necessary given the context. A game developer has written creature data to a binary file given the data format below. Your task is to create a program that only loads the creatures of a requested zone. Your program should allocate memory for the data ONLY when it is requested. Once loaded, display the data as shown below.

Requirements

The creature struct should be declared in a header file with a header guard. Any functions created must have a declaration in the same header file.

Accept two command-line arguments for the file name and requested zone.

Search through the file and allocate memory for each creature that is in the requested zone. The creatures should be loaded in an array that is dynamically allocated as well.

Once the end of the file is reached, print out the creatures found.

Use the file creatures.db on Canvas to test your program. There are only 3zones (1, 2, 3) in the file.

Data Format

long size 

int zone

int cr

int ac

int hp

char *name

Example Output

$ ./read_creature c.db 3

Name: Adult Bronze Dragon

CR: 15

HP: 212

AC: 19

Zone: 3

Name: Adult Red Dragon

CR: 17

HP: 256

AC: 19

Zone: 3