CSV文件的内容到C中的结构

NJM*_*JMR 3 c csv structure

我有一个结构......

struct myStruct {
    char Topic[8];
    char Unit[8];
    char Prim[1];
    char Temp[2];
    ...
    ...
    ...
    };
Run Code Online (Sandbox Code Playgroud)

我正在解析csv文件中的数据.其中每个标记是该顺序中结构的成员.

ptr = fgets( record, MAX_RECORD, fpIn );
strcpy(eachRow, record);
token = strtok(eachRow, ",");
while(token != NULL)
{   
    printf("Token = %s \n", token);
    // I have to copy the token into that members of the structure in that order.
    token = strtok(NULL, ",");
}
Run Code Online (Sandbox Code Playgroud)

如何将structuer memebers映射到指针,以便我可以在循环中将令牌直接复制到结构的成员中?

unw*_*ind 5

我只想使用一个静态的偏移数组,在编译时使用offsetof()以下方法计算:

static const size_t fields[] = {
  offsetof(struct myStruct, Topic),
  offsetof(struct myStruct, Unit),
  offsetof(struct myStruct, Prim),
  ...
};
Run Code Online (Sandbox Code Playgroud)

然后在标记每个字段时逐步执行此操作.当然,您可以通过包括最大字段大小来防止覆盖,从而使其更好.

另请注意,一般来说,解析CVS可能比您想象的更难,因此如果它很重要,可能值得使用第三方库来执行此操作.