我有以下示例:
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);
}
我有一部分可以提取和填充D *数据; 还有一个打印它的人。
从文件中提取并填充D的部分。
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
但是我撞车了.. 我不知道为什么..根据我在网上找到的代码,代码对我来说看起来还不错。 请你帮助我好吗 ?
谢谢。
文件看起来像这样:
{{1}}
例如
答案 0 :(得分:1)
此行:
fscanf(fp, "%d\n", _t->total_data);
无效。 _t->total_data
是一个int,但是您需要一个指向int的指针才能扫描数据。
尝试
fscanf(fp, "%d\n", &_t->total_data);
^
note
顺便说一句:您的编译器是否为此发出警告?