Чтение из файла с определенным форматированием (С)

Извините, если вопрос покажется банальным. Недавно начал изучать C. У меня есть файл с сохраненными данными которые вводяться в программе. И я хочу прочитать этот файл и сохранить данные в структуры. Например, файл с данными:

arduino_uno= 8 4096 233
mt3608= 2 0 155

Сама структура выглядит так::

struct MC {
char brand[20];
int bitrate;
int capacity;
int price;
};

Вывод программы:

arduino_uno= 8 4096
0
0
0

mt3608= 2 0 155
096
0
0
0

Код:

void getData(char path[]) {
    char data[100][150];
    struct MC mcs[getNumberOfLines(path)];

    FILE * fp = fopen(path, "r");
    if (fp == NULL) {return 1;}
    else {
        int line = 0;
        while (!feof(fp) && !ferror(fp)) {
            if (fgets(data[line], 150, fp) != NULL) {line++;}
        }

        fclose(fp);

        for (int line = 0; line < getNumberOfLines(path); line++) {
            puts(data[line]);
        }
    }

    for (int l = 0; l < getNumberOfLines(path); l++) {
        char brand[20];
        char info[3][4];
        int getting = 1;
        int idx = -1, n = 0;
        for (int i = 0; i < strlen(data[l]); i++) {
            if (data[l][i] == "=") {getting = 0; continue;}
            if (getting) {brand[i] = data[l][i];} else {
                if (data[l][i] == " ") {idx++; n = 0;} else {
                    info[idx][n] = data[l][i]; n++;
                }
            }
        }
        strcpy(mcs[l].brand, brand);
        mcs[l].bitrate = atoi(info[0]);
        mcs[l].capacity = atoi(info[1]);
        mcs[l].price = atoi(info[2]);
    }
    for (int i = 0; i < getNumberOfLines(path); i++) {
        printf("%s\n%d\n%d\n%d\n\n", mcs[i].brand, mcs[i].bitrate, mcs[i].capacity, mcs[i].price);
    }
}

Ответы (0 шт):