如何在带有多个分隔符的c中读取csv文件

时间:2016-09-12 11:42:33

标签: c csv delimiter scanf

希望使用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,以便我可以存储文件中的所有名称。

0 个答案:

没有答案