将数组中的元素添加到struct数组中

时间:2016-04-10 19:07:57

标签: c arrays string struct

正如标题所说,是否可以将字符串数组中的元素添加到结构数组中?例如,我有以下代码:

#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#define MAX_SIZE 500

typedef struct User
{
    char fullName[MAX_SIZE];
    char description[MAX_SIZE];
    char userName[MAX_SIZE];
    char password[MAX_SIZE];
} userData[MAX_SIZE];

int main (void)
{
    int j=0;
    int numData=0;
    char* data[500];
    char line[500];
    int i=0;
    userData newUser;
    FILE *file;
    file = fopen("users.txt", "r");
    while(fgets(line, sizeof(line), file))
    {
        data[i]=strdup(line);
        i++;
        numData++;
    }
    for (j=0 ; j<numData+1; j++) {
        printf("%s", data[j]);
    }

    fclose(file); 

    return 0; 
}

现在这段代码的作用是将users.txt文件中的行添加到字符串数组中。我现在要做的是将此字符串数组中的元素添加到我的struct数组中,例如:

newUser [1] .fullName =字符串数组的第一个元素

newUser [1] .description =字符串数组的第二个元素

...

这可能吗?或者有没有办法在不使用字符串数组的情况下以上面解释的格式将文件中的行添加到我的struct数组中?

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

读完该行后,您可以使用sscanf函数填充结构数组的第i个元素。您不需要更多地使用字符串数组。您可以在sscanf中指定字符串格式,并在循环中填写新用户的所有字段。