Чтение из файла с определенным форматированием (С)
Извините, если вопрос покажется банальным. Недавно начал изучать 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);
}
}