希望使用fscanf读取c中的CSV文件。
CSV文件:
约翰保罗
迈克
罗尼鲍德温
结构定义
typedef struct{
char *name;
}keydata_t;
这就是我在CSV文件中阅读的方式
keydata_t*read_key(FILE* fp)
{
char name[65];
if (fscanf(fp, "%[^\n]", name) == 1 ) {
keydata_t *k = (keydata_t*)malloc(sizeof(keydata_t));
printf("%s\n", name);
k->name = strdup(name);
return k;
}
return NULL;
}
这是我调用main函数内部的read函数的地方。
int max_index = index; //index value is
for (int i =0; i < max_index; i++)
{
keyt = read_key(keyfile);
search_tree(root,keyt);//root is my bst which consists of all the strings.
printf("%d\n", i);
}
搜索功能传递作为头部的rootptr并找到与keyt匹配的所有键值。
我的错误是读取函数中的keyt只读取John paul并返回它。如何正确使用fscanf,以便我可以存储文件中的所有名称。