C:从txt文件读取文件并插入数组。逗号作为分隔符

时间:2015-04-26 23:55:06

标签: c arrays file-io

所以我有一个.txt文件,其记录如下:

1234567, John, Doe

我的C代码中有数组,我想读取这些值并将它们插入:

int id[36] = {0};
char first_name[36];
char last_name[36];

所以他们的想法是,例如,1234567位于id的索引0处,John位于first_name的索引0处,而doe位于last_name的索引0处。我想用36条相似的线条做到这一点。

我调查了FILE IO,但我没有发现任何与此相关的内容。这样做的最佳方式是什么?感谢您的回复。

2 个答案:

答案 0 :(得分:6)

使用fscanf创建一个读取文件内容的循环。检查返回值为3,表示已读取所有三个项目:

// id is OK as os
int id[36] = {0};
// make first_name and last_name arrays of arrays
char first_name[36][36];
char last_name[36][36];
int i = 0;
while (fscanf(fd, "%d, %35[^,], %35s", &id[i], first_name[i], last_name[i]) == 3) {
    i++;
    if (i == 36) {
        break;
    }
}

格式字符串fscanf指定第一个参数是int后跟逗号和空格,然后是35个非逗号,再次使用逗号,最多35个字符的序列姓氏。

答案 1 :(得分:1)

您可以使用fscanf一次一行地读取文件,并使用strtok解析它,以便您指定特定的字段分隔符