Untitled

 avatar
unknown
plain_text
2 years ago
2.0 kB
7
Indexable
#include <stdio.h>
#include <string.h>

#define MAX_TEXT 50

typedef struct {
    int year;
    char name[MAX_TEXT];
    int platform;
    float price;
}Game;

int main() {

    char fileName[MAX_TEXT];
    FILE* fbin;
    Game games;
    int filter = 0;
    int cantidadAno = 0;
    int anoIntroducido = 0;
    float precioIntroducido = 0;

    printf("Filename: ");
    fgets(fileName,MAX_TEXT,stdin);
    fileName[strlen(fileName)-1] = '\0';

    printf("1. Filter by Year | 2. Filter by price\nSelect option: ");
    scanf("%d", &filter);

    if(filter == 1) {
        printf("Year: ");
        scanf("%d", &anoIntroducido);
    } else {
        printf("Price: ");
        scanf("%f", &precioIntroducido);
    }

    fbin = fopen(fileName, "rb");

    if(NULL == fbin) {
        //error...
        printf("Error loading the file\n");
    } else {
        //ok!
        fread(&games, sizeof(Game), 1, fbin);

        if(filter == 2) {
            printf("Games under %.2f euros\n", precioIntroducido);
        }

        while(!feof(fbin)) {

            if(filter == 2) {

                if(games.price <= precioIntroducido) {
                    if(games.platform == 0) {
                        printf("\t- %s (Switch)\n", games.name);
                    }else {
                        if(games.platform == 1) {
                            printf("\t- %s (PS4)\n", games.name);
                        } else {
                            if(games.platform == 2) {
                                printf("\t- %s (Xbox)\n", games.name);
                            }
                        }
                    }
                }

            } else {

                if(games.year == anoIntroducido) {
                    cantidadAno++;
                }

            }

            fread(&games, sizeof(Game), 1, fbin);

        }

        if(filter == 1) {
            printf("In the %d year about %d games were released\n", anoIntroducido, cantidadAno);
        }

        fclose(fbin);

    }



    return 0;
}
Editor is loading...