У меня есть следующий пример:
#define MAX_SIZE 32
typedef struct T {
int total_data;
D *data;
} T;
typedef struct D {
int type;
char value[MAX_SIZE];
} D;
У меня есть часть, которая извлекает и заполняет данные D *;И тот, кто его печатает.
Часть, которая извлекает и заполняет D, извлекает данные из файла.
void extract(T *_t) {
// Open file
fscanf(fp, "%d\n", &_t->total_data);
_t->data = malloc(_t->total_data * sizeof(*_t->data);
// Extract and fill
for ( i = 0; i < _t->total_data; i++)
fscanf(fp, "%d:%[^$]\n", &(_t->data[i].type), _t->data[i].value);
}
Функция, которая читает, выглядит следующим образом:
void read(T *_t) {
int i;
for( i = 0; i < _t->total_data; i++)
printf("%d - %s", _t->data[i].type, _t->data[i].value);
}
Но у меня произошел сбой .. Я не знаю почему .. код выглядит нормально для меня в соответствии с тем, что я нашел в Интернете. Не могли бы вы мне помочь ?
Спасибо.
Файлы выглядят так:
2
0:ABC
1:DEFGHI
Например,