#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

typedef struct
{
    int age;
    double height;
    char name[64];
} Person;

void printPersonInfo(Person *p)
{
    printf("Person: %s, %d, %f\n", p->name, p->age, p->height);
}

int main(int argc, char *argv[])
{
    FILE *fp = NULL;
    Person p;
    int np, N;

    Person vals[100];

    /* Validate number of arguments */
    if (argc != 2)
    {
        printf("USAGE: %s fileName\n", argv[0]);
        return EXIT_FAILURE;
    }

    /* Open the file provided as argument */
    errno = 0;
    fp = fopen(argv[1], "rb");
    if (fp == NULL)
    {
        perror("Error opening file!");
        return EXIT_FAILURE;
    }

    np = fread(vals, sizeof(Person), 100, fp);

    printf("Quantas pessoas?\n");
    scanf("%d", &N);

    rewind(fp);

    /* read all the itens of the file */
    while (fread(&p, sizeof(Person), 1, fp) == 1)
    {
        printPersonInfo(&p);
    }

    fclose(fp);

    return EXIT_SUCCESS;
}